gpt4 book ai didi

objective-c - 关于在 Objective C 中命名实例变量

转载 作者:行者123 更新时间:2023-12-02 07:03:08 24 4
gpt4 key购买 nike

有时我们可能会在synthesize 语句中显式指定实例变量的名称,例如

SomeViewController.h中,

//....
@property (nonatomic, retain) NSObject *variable;
//....

SomeViewController.m中,

//....
@synthesize variable = _variable;
//....

但是,如果实例变量将被隐式命名为 _variable,即使我们简单地将其命名为:

@synthesize variable;

SomeViewController.m 中。

任何人都可以分享一些关于为什么有必要的想法吗?谢谢:D

最佳答案

只是为了避免混淆(见注释):不需要使用 @synthesize= _variable 部分,也不是 @synthesize 本身不再需要。

仅当您要将属性链接到特定实例变量时才需要进行此操作。对于早期的 Objective-C 版本,这部分语句需要将名称设置为不同于属性名称的名称,因此当您想要调用 iVar _variable 和属性 variable。默认值为 variable (与您的问题不同)。如果没有 = something,ivar 和属性具有相同的名称。

顺便说一句,两者使用相同的名称并没有错。但是有不同的名称,一个前导的 _ 会做,让程序员更清楚他/她是直接访问 ivar 还是通过访问器方法。有时这非常重要,尤其是在不使用 ARC 时。因此,它有助于避免错误。

然而,对于当前的 Objective-C,您可以完全省略 @synthesize 语句,并在这种情况下使用默认值。默认的自动合成实例 variable 名称将以 _ 开头,因此在您的示例中为 _variable

关于objective-c - 关于在 Objective C 中命名实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com