gpt4 book ai didi

ios - 调用“@synthesize slider = _slider;”有什么意义?

转载 作者:行者123 更新时间:2023-12-01 17:45:28 24 4
gpt4 key购买 nike

有人可以向我解释一下(似乎是)一个额外变量的重要性,以及为什么要在一个与上一个名字相同的新变量之前加一个下划线。

我已经读到它与创建实例变量有关,但是为什么要创建一个UI元素作为实例变量呢?您能提供一个用例吗?

此 objective-c 代码用于iOS开发。

谢谢。

最佳答案

当您对属性进行@synthesize时,如果不提供自己的getter和setter方法(在这种情况下,无需@synthesize),则始终会创建一个新的实例变量。默认情况下,它的名称与属性相同。因此,@synthesize slider;在幕后创建了一个名为slider的实例变量。

这里的问题是,当您真正打算使用slider = xxx时,您可能会错误地键入self.slider = xxx。当您将某个属性设为属性时,最佳做法是您应该始终通过self.propertyName访问它(除了init和dealloc方法以及任何自定义的getter和setter方法中)。

因此,为了避免这种情况,使用@synthesize语句将支持ivar重命名为更难以与该属性混淆的内容。如果现在使用slider而不是self.slider,则编译器将给出错误消息,因为o​​jit_code不再是实例变量的名称。

关于ios - 调用“@synthesize slider = _slider;”有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7724249/

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