gpt4 book ai didi

objective-c - 设置值 - 实例变量

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:19 24 4
gpt4 key购买 nike

我正在学习 Objectice-c,我注意到我可以用两种方式设置实例变量的值

@interface Foo : NSObject
@property int x;
-(void)print;
@end

@implementation Foo

-(void)print
{
[self setX:10] // first way
x = 10; // second way
}
@end

我个人更喜欢第一种方法,因为它看起来更清晰。在我的项目中使用第一种方法可以吗?

最佳答案

您可以通过两种方式访问​​您的变量:

将 setter 或 getter 与 self 一起使用。 :

self.x = 10;
[self setX:10]

两者是等价的,但 Apple 建议您将 setter 与 self 一起使用。

或者直接访问ivar。 ivar 名称取决于您如何合成它。如果你使用默认的合成(或者你自己不合成),是这样的:

_x = 10;

在您的示例中,第二种方式是直接访问 ivar,第一种方式是使用 setter(与 self.x = 10 相同),

推荐使用第一种方法(使用 self 或使用 setter),因为它可以解决内存问题、释放以前的值、在需要时保护线程等等。而且使用 self 更舒服。而不是调用 setter 。

只在 init 方法中使用 ivar,其余使用 setter。

关于objective-c - 设置值 - 实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17573630/

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