我對開發人員使用Xcode測試版,並且注意到一些細微的差異。其中有一個屬性是已申報屬性的新屬性。什麼是強屬性屬性
@property(strong)IBOutlet NSArrayController *arrayControl;
我的問題是:強屬性意味着什麼?它取代了一些較老的,還是全新的?我已經通過谷歌和開發人員的文檔搜索,並沒有找到任何東西。直到我知道它是什麼,我猶豫使用它。
在此先感謝
我對開發人員使用Xcode測試版,並且注意到一些細微的差異。其中有一個屬性是已申報屬性的新屬性。什麼是強屬性屬性
@property(strong)IBOutlet NSArrayController *arrayControl;
我的問題是:強屬性意味着什麼?它取代了一些較老的,還是全新的?我已經通過谷歌和開發人員的文檔搜索,並沒有找到任何東西。直到我知道它是什麼,我猶豫使用它。
在此先感謝
這對retain
屬性的替代品,作爲Objective-C Automated Reference Counting (ARC)一部分。在非ARC代碼中,它只是retain
的同義詞。
正如我們所知,我們不能在iOS 5中的基於ARC的項目中發佈任何對象。因此,當我們希望保留任何對象以便在稍後階段進一步使用並且不希望ARC從對象中刪除對象時內存,那麼我們將對象的屬性設置爲「強」。
強引用是對對象的引用,它阻止它被釋放。換句話說,它創建了一個所有者關係。而在以前,你這樣做:
**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**
在ARC我們下面來確保一個類實例需要的所有者權益引用的對象(即所以它不能被釋放,直到主人)。
**// ARC Compliant Declaration
@property(strong) NSObject *obj;**
真的不應該談論的βNDA的東西在這裏... –
那麼,它不會像IM泄露公司機密,但是是的,我大概應該把這個蘋果開發論壇 –
我一直看到這些「beta NDA」對目標c的評論。我覺得蘋果覺得有必要保護它的客觀c祕密(每個人都渴望複製客觀的c),而且更有趣的是開發人員覺得有必要繞開這個祕密。 – Jehan