关于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
阅读 3.6k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题