@property 、@synthesize 、@dynamic区别

@property

会帮助开发者自动生成get/set方法,编译期间系统发现开发者未添加属性对应set/get方法则会自动生成,已添加则不管。同时属性对应的成员变量默认是 "_属性名"。

@synthesize

在xcode4.4之前如果要自动生成set/get方法,需要此关键字。如果项目里使用 "@synthesize 属性名" 则会声明成员变量和属性为同一个变量。举例:
@synthesize person;
此时self.person 和 person 一致。

@dynamic

此关键字告诉编译器,set/get方法开发者自己编写,如果没有写也不用发出警告,但如果使用此关键字而又不写set/get方法,则调用时会发生崩溃。成员变量依旧是属性前加下划线。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,141评论 1 32
  • synthesize与dynamic @property有两个对应的词,一个是 @synthesize,一个是 @...
    LeonYin阅读 544评论 0 2
  • 一. 关于@property @property, 是声明属性的语法,在iOS日常开发中经常会使用。 其实就是由编...
    JoliLove阅读 1,502评论 0 4
  • 又是一年将过去 让我们珍惜 这最后的一段时光 刷牙和洗脸,都有了不同的意义 包括自己的脚步 都放慢来欣赏 今天我还...
    水摇绢阅读 251评论 1 0
  • 春风明月总相随,无奈只把旧人闻。 恨得连绵春归处,不愿寻仙只愿笑。 忽得美景无人随,偶然相逢是故期。 问君一句解千...
    无言ai阅读 284评论 0 0