900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 《Objective-C基础教程》学习笔记第九-十章

《Objective-C基础教程》学习笔记第九-十章

时间:2020-01-09 18:30:12

相关推荐

《Objective-C基础教程》学习笔记第九-十章

1. Cocoa的内存管理方法:retain, release和autorelease三种。 每个对象都维护一个保留计数器,对象被创建时其保留计数器值为1,对象被保留时,计数器加1,被释放时计数器减1,当计数器值为0时对象被销毁。在销毁对象时,首先调用对象的dealloc方法,然后回收其占用的内存。调用retain后计数器值加1,调用release后计数器值减1,调用autorelease后,计数器值不会立即改变,而是将该对象放入NSAutoreleaePool中,当自动释放池被销毁时,会向池中所有对象发送release消息,计数值归0的对象会被销毁。

2. Cocoa中关于对象及其保留计数器的3条规则:(1)如果使用new, alloc或copy操作获得一个 对象,则该对象的保留计数器值为1. (2)如果通过任何其他方法获得一个对象,则假设该对象的保留计数器值为1,并且已经设置为自动释放. (3)如果保留了某个对象,则必须保持retain方法和release方法的使用次数 相等。

3. 通常使用[[类名 alloc] init]而非[类名 new]来创建新的对象。在编写初始化方法init时,应该使用if(self = [super init])的方式进行赋值以防止创建出的对象发生改变,在init的结尾要调用return (self)来返回创建好的对象。

4. 一个类可以有多个初始化方法,如果有多个,需要选择其中一个作为指定初始化函数,在该函数中应该调用超类的指定初始化函数,其他初始化函数应该按照指定初始化函数形式编写。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。