strong
和weak
Xcode iOS 5.1 SDK中的IBOutlets有什麼區別?強和弱IBOutlets之間的區別
我之前使用4.3 SDK,其中強大的IBOutlets不存在。另外,(自動)發佈在iOS 5.1 SDK中不可用。
strong
和weak
Xcode iOS 5.1 SDK中的IBOutlets有什麼區別?強和弱IBOutlets之間的區別
我之前使用4.3 SDK,其中強大的IBOutlets不存在。另外,(自動)發佈在iOS 5.1 SDK中不可用。
Strong
意味着只要該屬性指向一個對象,該對象就不會自動釋放。在非ARC它是retain
的代名詞指定存在於 目標對象強大的(擁有)關係。
Weak
而是意味着屬性指向的對象可以自由釋放,但前提是它將屬性設置爲NULL。在ARC您使用不足,不能保證你不擁有它指向的對象,以
指定存在於 目標對象弱(非所有)的關係。如果目標對象被釋放,則 屬性值將自動設置爲零。
Nonatomic
意味着如果多個線程嘗試讀取或立即更改屬性,可能會發生不良情況。後果是會有部分寫入的值或過度釋放的對象= CRASH。
再看看here, at Apple's documents。
從那裏,例子是
@property (weak) IBOutlet MyView *viewContainerSubview;
@property (strong) IBOutlet MyOtherClass *topLevelObject;
檢查也this更多地瞭解strong
和weak
。
在ARC(自動引用計數)中Strong
告訴編譯器該屬性所有者關係是「強大的」。它相當於自動釋放池內存方案中的retain
。蘋果有一篇關於過渡到ARC here的文章。
您聲明爲強的屬性,它擁有該對象,並且編譯器將關心哪個對象分配此屬性。當我們設置爲零時,該屬性將被銷燬。
當你不想控制生命時間,那麼你宣佈爲一週屬性。
你不能比較強和非原子。我認爲你的意思是強弱之間的區別。您是否嘗試過在Apple文檔中閱讀有關它的內容? – dasdom
@dasdom好弱和強烈的參考差異引導我或任何文檔鏈接 – Dinesh
如果禁用ARC,則iOS 5中可以使用自動釋放和發佈。 ARC是可以啓用或禁用的功能。 – borrrden