Objective-C对象初始化
2015-01-23 13:35
330 查看
1. 两种方式创建对象:[类名 new],[[类名 alloc] init],Cocoa推荐alloc init
2. alloc可以分配一块内存,然后清零。BOOL为NO,int为0,float为0.0,指针为nil
3. Car *car = [Car alloc]可能运行起来,但没有init,可能会出现bug
4. init方法一般都会返回正在初始化的对象,因为初始化方法返回的对象和分配的独享不同,所以要嵌套写[[Car alloc] init]。
5. if (self = [super init])意味着self可能会发生改变
6. 即便你目前没有设置自定义属性的值,也应该等到调用者需要的时候再创建对象,这种称之为惰性求职。
7. 便利化初始函数,以init开头,比如NSString类中initWithFormat,initWithContentOfFile:encoding:error:
8. 苹果IOS开发,不支持垃圾回收,只能用ARC技术。
9. Car类可以使用NSMutableArray代替常规的C数组,这样就不用执行上限检查了,init的时候可以先分配[NSNull null],等到setEngine的时候使用replaceObjectAtIndex
10. 垃圾回收方式setEngine函数只需要把newEngine赋值给engine即可。垃圾回收中不支持dealloc方法,如果想在对象销毁前做些东西,就需要重写-finalize方法。ARC要加的是@autoreleasepool
11. 指定初始化函数,类中的某个初始化方法指定为初始化函数,该类的所有初始化方法都使用指定初始化函数执行初始化操作,子类使用超类的指定初始化函数进行超类的初始化。
12. 初始化函数规则,如果不需要设置任何状态,或者alloc方法将内存清0就不错就不用理会init方法,如果创建了一个指定初始化函数,则一定要在自己的指定初始化函数中调用超类的指定初始化函数。初始化函数不止一个,则要选择一个为指定初始化函数
13. Cocoa分配和初始化是两个分离的操作,alloc为对象分配一块内存并清零,init用于获取一个对象并使之运行。
2. alloc可以分配一块内存,然后清零。BOOL为NO,int为0,float为0.0,指针为nil
3. Car *car = [Car alloc]可能运行起来,但没有init,可能会出现bug
4. init方法一般都会返回正在初始化的对象,因为初始化方法返回的对象和分配的独享不同,所以要嵌套写[[Car alloc] init]。
5. if (self = [super init])意味着self可能会发生改变
6. 即便你目前没有设置自定义属性的值,也应该等到调用者需要的时候再创建对象,这种称之为惰性求职。
7. 便利化初始函数,以init开头,比如NSString类中initWithFormat,initWithContentOfFile:encoding:error:
8. 苹果IOS开发,不支持垃圾回收,只能用ARC技术。
9. Car类可以使用NSMutableArray代替常规的C数组,这样就不用执行上限检查了,init的时候可以先分配[NSNull null],等到setEngine的时候使用replaceObjectAtIndex
10. 垃圾回收方式setEngine函数只需要把newEngine赋值给engine即可。垃圾回收中不支持dealloc方法,如果想在对象销毁前做些东西,就需要重写-finalize方法。ARC要加的是@autoreleasepool
11. 指定初始化函数,类中的某个初始化方法指定为初始化函数,该类的所有初始化方法都使用指定初始化函数执行初始化操作,子类使用超类的指定初始化函数进行超类的初始化。
12. 初始化函数规则,如果不需要设置任何状态,或者alloc方法将内存清0就不错就不用理会init方法,如果创建了一个指定初始化函数,则一定要在自己的指定初始化函数中调用超类的指定初始化函数。初始化函数不止一个,则要选择一个为指定初始化函数
13. Cocoa分配和初始化是两个分离的操作,alloc为对象分配一块内存并清零,init用于获取一个对象并使之运行。
相关文章推荐
- 谈谈Objective-C下对象的初始化
- 浅谈 Objective-C 下对象的初始化
- Objective-C基础学习笔记——对象初始化
- Objective-C 编程语言(3) 定义类---分配并初始化对象,init方法的返回值,初始化方法的实现
- Objective-C边学边记-14:对象初始化
- 浅谈 Objective-C 下对象的初始化
- 浅谈 Objective-C 下对象的初始化
- Objective-C 2.0 with Cocoa Foundation---对象的初始化以及实例变量的作用域(3)
- Objective-C 语法二(对象初始化)
- Objective-C初始化对象的时候为什么总是有一句:if (self = [super init])
- Objective-C对象之初始化和两段构造法(二)
- Objective-C 对象初始化
- Objective-C对象的申请空间与初始化
- objective-C 对象初始化/属性
- Objective-C 2.0 with Cocoa Foundation---对象的初始化以及实例变量的作用域(1)
- Objective-C 2.0 with Cocoa Foundation--- 7,对象的初始化以及实例变量的作用域
- 鉴客 浅谈 Objective-C 下对象的初始化
- Objective-C编程之对象初始化
- Objective-C对象的申请空间与初始化
- objective-c中的构造函数(对象初始化)(七)