0
我有一個在我的UIViewController中使用的NSArray對象。我可以聲明它是一個ivar或作爲一個財產。這兩種方法有什麼優勢(考慮到我正在使用ARC)?ARC:成員變量和屬性之間有什麼區別?
選項1:
@interface MyViewController {
NSArray *_myArray;
}
@end
選項2:
@interface MyViewController
@property (strong, nonatomic) NSArray *myArray;
@end
我的問題是專門爲私人數據。感謝您的解釋。 – melsam 2012-08-02 23:12:05
就ARC而言,屬性和iVar在大多數情況下都會消除它們之間的差異。以前,您必須確保將變量設置爲屬性,因爲它們存在未被正確保留的風險。現在,在ARC中, – 2012-08-02 23:12:09
我從來沒有聽說過沒有與它有關的ivar的屬性,使用@dynamic僅僅意味着訪問者將在代碼的稍後某處提供,所以編譯器不必爲你找到它們。除非你的意思是讓這些訪問器執行其他不向ivars釋放的東西,在這種情況下,我認爲它會破壞目的。 – Pochi 2012-08-02 23:16:32