美文网首页
OC学习(3)-属性

OC学习(3)-属性

作者: deactivateuser | 来源:发表于2016-06-24 16:51 被阅读19次
Attribute Description
getter= Use a custom name for the getter method.
setter= Use a custom name for the setter method.
readonly Don’t synthesize a setter method.
nonatomic Don’t guarantee the integrity of accessors in a multi-threaded environment. This is more efficient than the default atomic behavior.
strong Create an owning relationship between the property and the assigned value. This is the default for object properties.
weak Create a non-owning relationship between the property and the assigned value. Use this to prevent retain cycles.
copy Create a copy of the assigned value instead of referencing the existing instance.

不同关键字的使用场景

  • 使用assign:对基础数据类型(NSInteger)和C数据类型(int,float,double,char等)
  • 使用copy:对NSString
  • 使用retain:对其他NSObject和其子类
  • 使用weak:其和assign差不多,但是它多了一点,就是,它会自动对该类型变量设置为nil

assign: 简单赋值,不更改索引计数(Reference Counting)。
copy: 建立一个索引计数为1的对象,然后释放旧对象
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1

weak 和strong的区别

(weak和strong)不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。
一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。

例子
想象我们的对象是一条狗,狗想要跑掉(被释放)。
strong型指针就像是栓住的狗。只要你用牵绳挂住狗,狗就不会跑掉。如果有5个人牵着一条狗(5个strong型指针指向1个对象),除非5个牵绳都脱落 ,否着狗是不会跑掉的。
weak型指针就像是一个小孩指着狗喊到:“看!一只狗在那” 只要狗一直被栓着,小孩就能看到狗,(weak指针)会一直指向它。只要狗的牵绳脱落,狗就会跑掉,不管有多少小孩在看着它。
只要最后一个strong型指针不再指向对象,那么对象就会被释放,同时所有的weak型指针都将会被清除。

相关文章

  • OC学习(3)-属性

    不同关键字的使用场景 使用assign:对基础数据类型(NSInteger)和C数据类型(int,float,do...

  • block书写几种方式

    OC:1、typedef方式 2、属性 3、函数

  • OC运行时

    我个人对OC的理解就是:动态获取OC Class的属性和方法,从而动态改变Class方法和属性。之前学习Java的...

  • 四、Objective-C 属性声明和点语法

    Objective-C学习索引 一、属性是什么 属性(property):一个对象的属性或特性,OC中可以简单理解...

  • 属性

    存储属性其实Swift中的存储属性就是以前学习OC中的普通属性, 在结构体或者类中定义的属性, 默认就是存储属性*...

  • Swift 7: 属性观察者与计算属性

    1:属性观察者(和OC中KVO原理相同) 2:计算属性 3.计算属性通常用于下标 程序举例如下

  • Swift中的计算机属性setter/ getter

    1. 仿照OC 来写set/get方法 2. 只读属性的写法 3. 存储型属性和计算型属性 4.计算型属性和懒加载...

  • OC:属性

    目录 属性演变过程 属性定义 属性扩展 属性演变过程 上篇博文《OC学习备忘录:成员变量、方法》中演示了如何声明成...

  • OC基础学习9:属性

    1 使用属性 接口代码简化没有使用属性: 使用属性: @ property预编译指令的作用是自动声明属性的sett...

  • OC get set 方法理解

    OC get set 方法理解 get set方法不能同时重写 最近在了解oc的属性,oc的属性组成是由成员变量+...

网友评论

      本文标题:OC学习(3)-属性

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