強引用(在大多數情況下將使用該引用)意味著您希望“擁有”使用此屬性/變量引用的對象。編譯器將注意任何分配給該屬性的對象都不會被銷毀,只要您用強引用指向它。只有在將屬性設置為nil
該對象是否會被銷毀(除非一個或多個其他對象也持有對其的強烈引用)。
相反,如果引用較弱,則表示不希望控制對象的生存期。您所引用的對象弱只存在,因為至少有一個其他對象持有對它的強引用。一旦不再是這種情況,該對象將被銷毀,您的弱屬性將自動設置為nil
..IOS中最常見的弱引用例是:
委托屬性,這些屬性通常被弱引用以避免保留周期,以及
視圖控制器的主視圖的子視圖/控件,因為這些視圖已經被主視圖強烈持有。
原子方法和非原子方法是指編譯器為屬性合成的getter和setter方法的線程安全性。原子(默認)告訴編譯器使訪問器方法線程安全(在訪問Ival之前添加一個鎖),而非原子方法則相反。非原子的優點是性能稍高。在iOS上,蘋果公司幾乎所有的屬性都使用非原子技術,所以一般建議你也這樣做。