Objective-C属性

2017-12-08  本文已影响0人  _我和你一样

Objective-C属性修饰符

Objective-C 2.0引入了新的语法以声明变量为属性,并包含一可选定义以配置访问方法的生成。

属性总是为公共的,其目的为提供外部类访问类的内部变量的方法。

strong和weak是ARC带出来的关键词

strong 增加引用计数,weak不增加引用计数。

weak和assign的区别:weak地址被释放时自动设置为nil,而assign则不会主动设置为nil,有可能会造成野指针。

assign通常用于普通类型属性

像delegate属性建议用weak修饰而不是assign。

strong和retain的区别:

他俩都是强引用,除了某些情况下不一样,其他的时候也是可以通用的。

在修饰block属性的时候,相信大家都知道要用copy,如果不copy的话,他的生命周期会随着函数的结束而结束,copy之后会放在堆里面,延长block的生命周期。

strong在修饰block的时候就相当于copy,而retain修饰栈block的时候就相当于assign,这样block会出现提前被释放掉的危险。

@synthesize关键字 表示属性的属性会自动产生一对访问方法。

@dynamic关键字 表示访问方法会由程序员手工提供。

上一篇下一篇

猜你喜欢

热点阅读