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