weak和assign的区别

来源:互联网 发布:开票软件金税盘版升级 编辑:程序博客网 时间:2024/05/23 18:29

工作之后,一直使用ARC,weak作为property的关键字之一,代表弱引用,对象的引用计数不改变。从内存管理上说这点和assign是相同的。

俩者的不同在于

1.weak 此特质表明该属性定义了一种“非拥有关系” (nonowning relationship)。为这种属性设置新值时,设置方法既不保留新值,也不释放旧值。此特质同assign类似, 然而在属性所指的对象遭到摧毁时,属性值也会清空(nil out)。 而 assign 的“设置方法”只会执行针对“纯量类型” (scalar type,例如 CGFloat 或 NSlnteger 等)的简单赋值操作。

2.assigin 可以用非 OC 对象,而 weak 必须用于 OC 对象

0 0
原创粉丝点击