gpt4 book ai didi

objective-c - 为什么我们必须使用@synthesize 有实际原因吗?

转载 作者:太空狗 更新时间:2023-10-30 03:29:24 25 4
gpt4 key购买 nike

所以我在头文件中使用了 @property 键。

如果我这样做,我应该在我的实现中使用 @synthesize 键,对吗?但我想知道,是否有我必须这样做的实际理由?我只是想知道为什么不在标题中编写 @property 就足以让代码知道我的意图(自动生成 get/set 方法)。

当然,根据Why we have to synthesize?我们编写 @synthesize 来生成 get/set 方法。但我的问题是关于为什么 header 中的@property 不够用? 我问是因为每当我在 header 中写入 @property 时,我都会立即转到实现并写入 @synthesize。所以对我来说,使用 @synthesize 的唯一原因是补充 @property 关键字。这似乎是多余的,并且让我假设 @synthesize 如果不是因为它有其他用途 就不会存在。这些其他用途是什么?

最佳答案

@synthesize 做了两件事。它生成 getter/setter 对并为属性创建 iVar。

在这两件事中,我认为创建 iVar 是决定何时使用 @synthesize 和何时不使用的关键。当为未在内部存储为 iVar 的成员创建属性时,(显然)我不使用 @synthesize

即将推出的自动合成功能不会有太大帮助。我总是用前导“_”命名我的 iVar,因此我仍然需要明确地合成它们。

查看@AndrewMadsen 链接:看起来“_”前缀自动合成将生成 iVar。

W00t!不用说,我现在对自动合成更加兴奋!!

关于objective-c - 为什么我们必须使用@synthesize 有实际原因吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634157/

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