美文网首页
@proprety 属性的使用

@proprety 属性的使用

作者: 呜啦啦啦拉拉 | 来源:发表于2016-08-16 23:52 被阅读43次

@proprety是iOS中自动生成成员变量的get和set方法。
它有几种属性

读写属性:readonly,readwrite
在自动引用计数下使用的属性:strong,weak,copy
在非自动引用计数下使用的属性:assign,retain,copy
原子特性:nonatomic,atomic

读写特性指的是该对象是可读可写的还是可读的:

  • readonly表示只生成get方法。
  • readwrite表示生成get和set方法。默认使用readwrite

在自动引用计数下使用的特性:

  • weak表示的是弱引用,即一旦没有其他指针持有该对象。该对象立即释放并将指针设置为nil。通过Objective-C运行时源码可知在每一个被week指针指向的对象中都有一个数组存放week指针。当该对象释放后会依次将指针指向置nil,而保证程序不崩溃。
  • strong为强引用,使用该关键字会引用对象。当该指针释放后对象的引用计数会减一。

在非自动引用计数下使用的特性:

  • assign表示不持有对象,它与week不同的地方是assign不会自动在对象释放时将指针置nil,而会形成野指针。
  • retain表示持有对象。
  • copy表示不持有对象并复制该对象的值,创建一个新的对象并持有他。

原子特性:

  • atomic表示在多线程编程中对该对象加原子锁。
  • nonatomic表示在多线程编程中不加原子锁。

相关文章

网友评论

      本文标题:@proprety 属性的使用

      本文链接:https://www.haomeiwen.com/subject/jwzpsttx.html