- 博客(3)
- 收藏
- 关注
转载 用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
因为父类指针可以指向子类对象,使用 copy 的目的是为了让本对象的属性不受外界影响,使用 copy 无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本. 如果我们使用是 strong ,那么这个属性就有可能指向一个可变对象,如果这个可变对象在外部被修改了,那么会影响该属性. copy 此特质所表达的所属关系与 strong 类似。然而设置方法并不保留新值,而是将
2016-11-09 13:48:07 832
原创 @dynamic与@synthesize的区别
@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@syntheszie var = _var; @synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。 @dynamic告诉编译器,属性的setter与getter方法
2016-11-09 13:41:42 493
翻译 @property (copy) NSMutableArray *array; 这个写法会出什么问题
我们先回忆一下copy属性的作用,一个属性如果标记了copy,当你调用其setter方法时,他会建立一个索引计数为1的对象,然后释放旧对象。 @property (copy) NSMutableArray * a; NSMutableArray* b = [NSMutableArray array]; a = b; 等同于 @property (strong) NSMutable
2016-11-09 10:47:58 2365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人