gpt4 book ai didi

ios - 综合属性时实例变量的命名约定

转载 作者:可可西里 更新时间:2023-11-01 05:38:43 25 4
gpt4 key购买 nike

在Objective-C中综合属性时,建议不要简单的写:

@synthesize window; 

而是

@synthesize window = _window;

原因是您不希望您的实例变量与您的 getter 方法同名,否则“可能会发生坏事”。

我一直在我的应用程序中使用 @synthesize var1, var2, etc 而没有发生“坏事”。会发生什么样的坏事?

最佳答案

坏事时有发生,尤其是在 ARC 出现之前,人们会将对象分配给存储 iVar 而不是属性。如果这是意外完成的,则不会应用合成 setter 隐含的内存管理,从而导致泄漏或过早释放。

我以前用简单的方法来做,但现在我使用前缀。我不再自己声明 iVar,我让现代运行时为我处理。我使用前缀,这样我就不会不小心将 iVar 用作局部变量。

此外 - 我倾向于在我的类(class)中几乎所有地方都将我的属性称为 self.iVar。这样一来,我可以在需要时使用延迟加载的属性,而不必担心哪些是延迟加载的,哪些不是。

关于ios - 综合属性时实例变量的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283927/

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