gpt4 book ai didi

objective-c - 为什么我不应该使用 getter 来释放 objective-c 中的属性?

转载 作者:IT王子 更新时间:2023-10-29 08:14:41 24 4
gpt4 key购买 nike

fellow StackOverflow user 告诉我释放属性时我不应该使用 getter 方法:

@property(nonatmic, retain) Type* variable;
@synthesize variable;

// wrong
[self.variable release];

// right
[variable release];

他没有详细解释原因。他们在我看来是一样的。 My iOS book说属性上的 getter 看起来像这样:

- (id)variable {
return variable;
}

这不是意味着[self variable]self.variablevariable 都是一样的吗?

最佳答案

对于没有自定义访问器的保留属性,您可以通过以下方式释放对象:

self.variable = nil;

这具有将 ivar(如果您只有声明的属性,则可能不称为“变量”)设置为 nil 并释放先前值的效果。

正如其他人指出的那样,直接释放 ivar(如果可用)或使用上述方法都可以 - 您不能做的是对从 getter 返回的变量调用 release。

关于objective-c - 为什么我不应该使用 getter 来释放 objective-c 中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262268/

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