在下面的共同的样品,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