@interface Person : NSObject
{
NSString *_name;
}
@property (copy) NSString *name;
@end
@implementation Person
@synthesize name=_name;
@end
我不明白和下面这样写有何区别?
@interface Person : NSObject
{
NSString *name;
}
@property (copy) NSString *name;
@end
@implementation Person
@synthesize name;
@end
现在的 Xcode 已经没有必要写第一种了,如果在
@synthesize
中不指定成员变量名称的话,系统会自动把变量名称制定为_var
的形式,@property name
是属性名,只能用对象实例来获取,在类内部,要么直接用_name
,要么用self.name
。