在現代運行時。 你可以在無需已經宣佈在接口 像在類接口中的ivar和由聲明的屬性(現代運行時)創建的ivar之間有任何區別嗎?
@interface MyClass: NSObject
{
NSString *str2;
}
@property (retain) NSString *str1;
@property (retain) NSString *str2;
@end
同名伊娃財產申報同時我也知道,這會因爲在執行自動爲你生成一個STR1伊娃,你可以同時訪問self.str1
或純粹str1
。
但我的問題是,str1和str2之間有什麼區別嗎?
如果它們相同,爲什麼類擴展(沒有名字的類)允許添加一個新的聲明屬性,它也會生成一個ivar,但不允許在類擴展中添加一個ivar實例?(我知道LLVM 2.0或更高版本允許這但海灣合作委員會不要)
這不是財產指令,但'@ synthesize'創建變量:http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC /Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW9 – 2012-06-04 04:13:33