支持的iOS 4.3與ARC,我認爲正確的方法是使用assign
:要支持iOS 4.3,請使用「分配」而不是弱點,但Interface Builder使用unsafe_unretained?
@property (assign, nonatomic) UIView *view;
@property (assign, nonatomic) MYNode *node;
是正確的嗎?我還在Apple's doc for Transitioning to ARC中看到以下內容:
對於聲明的屬性,應該使用assign而不是weak;對於變量,您應該使用__unsafe_unretained而不是__weak。
然而,如果使用當前的Xcode(4.4.1),改變的單一視圖的應用目標至4.3,和Ctrl-拖動一個UIButton到.h
文件來創建的出口,將所生成的代碼是:
@property (unsafe_unretained, nonatomic) IBOutlet UIButton *foo;
爲什麼區別和應該使用哪一個?
但他們都可以暗示相同的事情,但仍然有分歧? –
@JeremyL:我相信沒有區別。我假設較舊的Xcode版本不理解'@property(unsafe_unretained,...)'。我有一些舊版本,所以我可以稍後測試,如果你真的感興趣。 –
確實沒有區別。 –