何时在属性声明中使用"assign"或"retain"?

use*_*949 1 objective-c ios

当我在iOS中为应用程序创建属性时,何时应该使用"assign"?我什么时候应该使用"保留"?

一个人比另一个人有什么好处吗?

Kaa*_*glu 7

Assign通常用于基本类型,编译器将创建setter,以便完成所有操作是一个简单的赋值操作.

而使用'retain'(现在称为带有ARC的"strong")限定符在属性上设置值会导致后备实例变量取得所设置对象的所有权(换句话说保留).

对于对象,如果您不想按照描述获得所有权并且您正在使用ARC,那么您很可能希望使用"弱"限定符而不是"赋值".