0
您可以像這樣聲明一個變量。具有屬性&合成的實例變量,以及一個沒有它們的屬性 - ARC
案例1:
@interface MyClass : NSObject
{
NSString *str;
}
@end
另外,如果你要設置其屬性,你可以做
案例2:
@interface MyClass : NSObject
{
NSString *str;
}
@property (nonatomic, strong) NSString *str;
@end
而在.M,
@synthesize str;
我的理解與差異情況1和情況2之間的情況是,情況2中的綜合和有價值變量可以從另一個類訪問,當這個另一個類實例化這個類時。
案例1和案例2有什麼不同?說這些變量只用於.m文件時。你設置'str'屬性的事實可能會有所作爲,但是如何呢?如果你沒有設置財產,他們將如何與ARC發佈?
如果你想使用它沒有去'self.str' – Fonix
因此,對於所有的實例,你仍然需要'@ synthesize'變量,我最好宣佈它的財產?我不應該在波形括號之間聲明任何實例變量? – Rocky
@Fonix不,你不知道。合成現在由編譯器「假設」,並設置一個帶下劃線的ivar。洛奇,我現在只使用屬性。現在有了「正確」的方式。這是更個人的偏好。但我發現在ARC中更容易管理屬性,並控制它們的保留方式等。 – Fogmeister