iOS 属性修饰符记录 --不定时更新

时间:2023-03-19 18:23:26

重新审视了一下OC在属性修饰符,特意记录一下来。以后不定时更新

》 retain:只有在非ARC下才会有效,所有如果在ARC下使用了retain修饰也白搭

如以下的data属性用retain修饰:

#import <UIKit/UIKit.h>
@interface MyView : UIView @property(nonatomic, retain) NSMUtableArray* data; @end

在对应的setter方法中,会以如下代码实现:

if (_data != newValue) {
[_data release];
_data = [newValue retain];
}

总结:使用retain修饰符,会使被赋值的对象引用计数加1

》 copy:copy不会改变被赋值的对象引用,而是浅拷贝被赋值对象的副本。

对应的setter方法如下:

if (_data != newValue) {
[_data release];
_data = [newValue copy];
}

总结:不改变被赋值对象的引用计数,只是对象的副本引用计数加1.

》strong跟retain差不多,暂时没什么好记得了

后面再记.