在下面的共同的樣品,Objective-C中,接口聲明具有屬性
////
@interface MyObject : NSObject
{
@public
NSString * myString_;
}
@property (assign) NSString * myString;
@end
@implementation MyObject
@synthesize myString = myString_;
@end
////
爲什麼聲明在界面在所有myString_
?
我問,因爲我們仍然可以獲取和使用self.myString
,[self myString]
,self.myString = ...
和[self setMyString:...]
實施設置myString
。事實上,我們必須相反,如果它被保留。
+1;我想補充一點,'@ synthesize'只會使用ivar,getter和setter完成這個類:如果你自己定義了它們,它們將優先於自動實現。 – zneak