ARC之前,你會在你的.h文件聲明屬性:是否需要使用ARC的UIView屬性的retain屬性?
@property (nonatomic,retain) UIView *someUIView;
弧,我還需要使用retain
或者我可以只寫這個?
@property (nonatomic) UIView *someUIView;
ARC之前,你會在你的.h文件聲明屬性:是否需要使用ARC的UIView屬性的retain屬性?
@property (nonatomic,retain) UIView *someUIView;
弧,我還需要使用retain
或者我可以只寫這個?
@property (nonatomic) UIView *someUIView;
的strong
關鍵字一直標榜的地方retain
,但他們是真正的同樣的事情。所以你可以使用strong
或retain
。
您的看法將需要至少保留一個對象。如果您的視圖已被另一個對象保留,則可以使其成爲assign
(又名弱)屬性。否則,您可以保留retain
或strong
關鍵字。
在LLVM 3.1和更高版本中,您可以執行任一操作,因爲它們是相同的。在ARC下,strong
(與retain
相同)是缺省值,如果未指定,則爲可保留對象指針。
從LLVM ARC doc引用:
其合成 沒有所有權的源極可保持對象指針類型的特性具有其相關聯的 實例變量的所有權,如果它已經存在;否則,[開始蘋果 3.1,LLVM 3.1]其所有權隱含強大。在此次修訂之前,合成這種財產的行爲是不健全的。
我經常發現自己輸入「強」反正我覺得因爲自assign
先前默認,這着實讓我每次看到沒有規定所有權保留性對象屬性的時間只是一瞬間。