gpt4 book ai didi

objective-c - 为什么 Xcode 4 会自动生成一个实例变量?

转载 作者:可可西里 更新时间:2023-11-01 04:19:26 25 4
gpt4 key购买 nike

我来自 C# 开发,刚开始学习 Objective-C 和 Xcode 4。据我了解,如果您不需要检查/控制正在读取或写入的值,“@synthesize”正在替换属性的 getter/setter 方法。

但为什么 Xcode 4 会自动为我创建一个实例变量?

这还不够吗:

@synthesize myProperty;

代替:

@synthesize myProperty = _myProperty;

?

如果我没有/不需要任何 getter 或 setter,为什么我要使用/拥有实例变量而不是实际属性?

提前致谢!

孟菲斯

编辑:

我知道 @synthesize 正在替换 getters/setters 但这部分有什么用:= _myProperty;?如果我可以直接使用“myProperty”,为什么我想要一个实例变量?如果 setter 例如会检查值的条件,我会理解使用“_myProperty”。如果我想跳过这个检查,我会使用 _myProperty。但是当我使用@synthesize 时,我没有合适的 setter 来进行一些检查。那么为什么我有/想要一个实例变量呢?

回答:

查看 MattyG 帖子中的评论!

最佳答案

这是一个约定,用来提醒程序员通过self.setters和getters来访问实例变量。所以如果你使用:

@synthesize myProperty = _myProperty;

然后要直接访问变量,您必须这样写:

_myProperty = something;

要通过它的 setter 访问变量,您必须这样写:

self.myProperty = something;

好处是如果你忘记通过self访问。然后编译器会警告你:

myProperty = something;  //this won't compile

另请参阅此 Question .

关于objective-c - 为什么 Xcode 4 会自动生成一个实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8032087/

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