关于objective-c类中为何要这样写?



 @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

ios开发 objective-c

小鼻涕噶儿 11 years ago

现在的 Xcode 已经没有必要写第一种了,如果在 @synthesize 中不指定成员变量名称的话,系统会自动把变量名称制定为 _var 的形式, @property name 是属性名,只能用对象实例来获取,在类内部,要么直接用 _name ,要么用 self.name

人不猥琐枉少年 answered 11 years ago

Your Answer