gpt4 book ai didi

ios - 如果显式实现一个 getter,是否仍然创建了 ivar?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:22 25 4
gpt4 key购买 nike

我试图了解有关属性的所有情况,主要是自动创建 ivar 和不自动创建 ivar 的情况。请告诉我以下情况是否正确:

  1. 属性是隐式读写的。如果声明了一个readwrite属性,并且getter和setter是显式实现的,是不是真的不会自动生成ivar?

  2. 假设声明了另一个读写属性,这次只有 getter 被显式实现。 ivar 将自动生成,因为只要属性的两个(getter 或 setter)之一明确实现,它就会自动生成。

  3. 与场景2基本相同,只是这次是显式实现的setter。 ivar 将自动生成,因为只要属性的两个(getter 或 setter)之一明确实现,它就会自动生成。

澄清一下,当创建 ivar 时,它是否总是前面有下划线“_”?

最佳答案

您的所有陈述都是正确的(假设您没有明确提供@synthesize 陈述)。

引用:"Encapsulating Data"在“使用 Objective-C 编程”文档中:

Note: The compiler will automatically synthesize an instance variable in all situations where it’s also synthesizing at least one accessor method. If you implement both a getter and a setter for a readwrite property, or a getter for a readonly property, the compiler will assume that you are taking control over the property implementation and won’t synthesize an instance variable automatically.

If you still need an instance variable, you’ll need to request that one be synthesized:

@synthesize property = _property;

关于ios - 如果显式实现一个 getter,是否仍然创建了 ivar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286610/

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