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

发布于 2022-08-27 12:32:00 字数 326 浏览 17 评论 0

@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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

各空 2022-09-03 12:32:00

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文