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

关于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

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

【热门文章】
【热门文章】