码迷,mamicode.com
首页 > 其他好文 > 详细

2014.12.11 oc基础复习

时间:2014-12-11 19:26:11      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:关键字   多线程   

这一天主要学习了内存管理的部分,感觉稍显复杂,但只要遵循总的原则就不会错

谁声明,谁销毁,谁retain,谁release

1.在类的成员变量是oc对象时,set方法需要写内存管理如

-(void)setBook:(Book *)book{

    if( _book != book){

        [_book release];

        _book = [book retain];

     }

还要在调用这个set方法的类的dealloc方法中,加入[_book release]

在声明该对象成员变量的属性时,加入retain关键字,就可以代替上述内容

@propety 还有readonly,readwrite,assgin,retain,copy,atomic,nonatomic等关键字

atomic是原子性,即给该方法加上线程锁,在一个线程尚未执行完毕时不允许另外一个线程调用,耗费了系统安全,nonatomic即禁止了多线程

2.@class关键字 在对象与对象相互引用成员变量时使用,代替引入.h文件,提高了编译效率

3.autorelease延迟释放,使用autorelease声明时,会把该变量加入autoreleasepool的栈顶,等该池释放的时候,pool的所有变量都调用一次release方法,一般静态方法声明的变量都是autorelease,循环量比较大的语句不要加入autoreleasepool,而且在arc中模式中不能使用autorelease方法


2014.12.11 oc基础复习

标签:关键字   多线程   

原文地址:http://8365137.blog.51cto.com/8355137/1588785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!