![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oc语言问题理解
CZ_2015
C/ios攻城狮
展开
-
面向对象的设计步骤
面向对象的设计步骤 1、 先根据需求找出对象 2、 抽象每一个对象为类 3、 找出各对象之间的关系,使用组合、继承、分类、扩展等描述这些关系 4、 找出每个对象实体要做的事,写对象方法 5、 找出每个类在不需要有对象实体的情况下要做的事,写类方法原创 2015-08-09 13:56:01 · 7375 阅读 · 0 评论 -
自动管理内存总结
总结: 前提条件 对象都是有引用计数且是被强指针指向的 [1]MRC,有autoreleasepool的情况下 | 所有创建出来的新对象都需要被释放 | [2]MRC,没有autoreleasepool的情况下 |--MRC不自动生成代码,全手动 所有创建出来的新对象都需要被释放 | [3]ARC,有autoreleasepool的情况下 | 不原创 2015-08-16 21:37:11 · 378 阅读 · 0 评论 -
理解协议委托者代理者问题
OC中的代理、协议知识点浅显易懂的解析 先举一个例子:工人想盖楼,求助建筑师 在这一句话里,谁是委托者,谁是代理者? 一般来说会认为工人是委托者,建筑师是代理者 并且代理和委托是可以互相转换的,正反都能说得通。 分析问题: 谁懂得盖楼的框架?答案是建筑师 谁提供盖楼的资源?答案是工人 建筑师会亲自盖楼吗?答案是否 那么谁亲自盖楼?答案是工人 所以原创 2015-08-16 19:56:10 · 483 阅读 · 0 评论 -
xml解析代理NSXMLParserDelegate的使用步骤
[1]使用NSXMLParser对象的成员A存放本地xml文件的二进制内容 [2]创建一个代理,遵守NSXMLParserDelegate协议,代替A完成解析 [3]A执行解析方法,解析方法中有全部调用过程,但是被封闭了 [4]要完成这个工作,首先从代理的定义方法入手 代理要实现的代理方法解释: 1、 - (void)parserDidStartDocument原创 2015-08-16 21:31:31 · 1399 阅读 · 0 评论 -
block的使用写法
block的使用写法专题 1、block作为形参的写法,OC方法和C函数各2种,一共四种 OC方法第一种 第一步:先定义 typedef NSString *(^zcblk)(NSString*); 第二步:用定义的数据类型作为blk类型 -(NSString *)reverseWith1:(zcblk) blk; OC方法第二种 直接把blk结构定义在参数中 -(NSS原创 2015-08-12 09:03:01 · 971 阅读 · 0 评论 -
横向看分类,扩展,协议的区别
【分类】 不修改原类代码,给原类添加方法的【定义和实现】 【扩展】 在原类的.m上打补丁,给原类添加私有的成员、属性、方法的【定义】 【协议】 抽象出一些方法,谁遵循协议,谁实现方法 【三者之间区别】 分类和扩展区别: 1、分类不改变原类,扩展改变原类的.m文件,协议是在原类定义时就决定是否遵循 2、添加方法的区别 分类可以添加方法的定义+实现,且方法是原创 2015-08-09 15:13:56 · 437 阅读 · 0 评论 -
oc中的工厂设计模式
OC中的工厂设计模式 拿NSString类为例,NSString类中本身定义的方法只有两三个(length等),但是为什么我们使用NSString对象的时候能调用如此多的方法? 这里就要引入分类的概念,我们随便调用一个NSString类方法,command进入其定义文件查看,发现这个方法会位于类似 @interface NSString (NSStringExtensionMetho原创 2015-08-09 14:24:07 · 1027 阅读 · 0 评论 -
OC中对象的动态编译机制
[对象的编译机制] 1、为什么OC不能sizeof一个对象的大小?和类结构相近的结构体却可以 2、为什么OC不能将对象声明到静态空间,如栈中,和类相近的结构题却可以 因为IC的动态继承编译机制,动态继承机制,就是说在编译的时候不能确定父类的大小,只有在运行时才能确定父类大小, 答1: sizeo是在栈中操作的,编译的时候就会计算出来sizeof的值 而栈中不知道对象的父原创 2015-08-09 13:57:33 · 764 阅读 · 0 评论 -
使用构造方法产生对象的原理
第一步:释放self(释放调用此init工厂方法的本对象) 第二步:创建新对象(创建一个新的对象接收传入的初始化值) 第三步:对接收完的新对象进行autorelease操作 第四步:返回新对象给一个强指针原创 2015-08-09 15:16:37 · 529 阅读 · 0 评论 -
导航栏互相加载的栈操作问题
使用导航栏时, A为根视图控制器 A加载B B加载C 在A的 viewWillDisappear方法中对当前控制器设置导航栏隐藏 当A调用B时,导航栏隐藏,B调用C也隐藏了(因为A,B,C使用的是同一个导航栏),现象正常 在C的 viewWillDisappear方法中对当前控制器设置导航栏隐藏,当C退回到B时,发现没有隐藏,退回A时,也没有隐藏,(因为A,B,C使用原创 2015-08-22 01:29:47 · 298 阅读 · 0 评论