您的位置:首页 > 移动开发 > Objective-C

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用于获取一个对象并使之运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: