ios 笔记之 IBOutlet 与 copy,retain,assign

* assign: 简单赋值,不更改索引计数(Reference Counting), 
           对基础数据类型 (NSInteger)和C数据类型(intfloatdoublechar,等)

* copy:   创建一个和原对象相同, 索引计数为1的新对象。
           dealloc 需要 release,原对象要继承NSCopying 协议。

* retain: 释放旧的对象,将输入对象指针赋予对象
           再将输入对象的索引计数+1,对其他NSObject和其子类,
           dealloc 需要 release,


下面这段内容来自网络,没有验证。 

在 iOS 中, 只要控件使用 IBOutlet 连接, 则必须释放它, 而不管是否有 @property ( retain ) 属性
在 mac OS 中, 使用 IBOutlet 连接, 如果有 @property (retain) 属性,则 dealloc 需要 release, 如果没有 @property (retain) 属性,则不需release .

原因:iOS 默认 retain 属性, mac OS 默认非 retain 属性。

回头我验证一下。再修改这里的内容。

个人认为,其他的就不管了。
记住一条,使用 IBOutlet 连接的情况下,凡是NSObject和其子类等类似有索引计数的,尽量用retain,然后再release。


你可能感兴趣的:(ios 笔记之 IBOutlet 与 copy,retain,assign)