强引用(在大多数情况下将使用该引用)意味着您希望“拥有”使用此属性/变量引用的对象。编译器将注意任何分配给该属性的对象都不会被销毁,只要您用强引用指向它。只有在将属性设置为nil
该对象是否会被销毁(除非一个或多个其他对象也持有对其的强烈引用)。
相反,如果引用较弱,则表示不希望控制对象的生存期。您所引用的对象弱只存在,因为至少有一个其他对象持有对它的强引用。一旦不再是这种情况,该对象将被销毁,您的弱属性将自动设置为nil
..IOS中最常见的弱引用例是:
委托属性,这些属性通常被弱引用以避免保留周期,以及
视图控制器的主视图的子视图/控件,因为这些视图已经被主视图强烈持有。
原子方法和非原子方法是指编译器为属性合成的getter和setter方法的线程安全性。原子(默认)告诉编译器使访问器方法线程安全(在访问Ival之前添加一个锁),而非原子方法则相反。非原子的优点是性能稍高。在iOS上,苹果公司几乎所有的属性都使用非原子技术,所以一般建议你也这样做。