gpt4 book ai didi

ios - 使用 self.property 释放属性 - 分析器中的错误

转载 作者:行者123 更新时间:2023-11-28 23:13:49 25 4
gpt4 key购买 nike

我有一个带有属性的 UIViewController

@property (nonatomic, retain) NSMutableArray *speakerFetchResults;

然后我在 viewWillAppear 中设置属性

 self.speakerFetchResults = [[[self.speakerViewContext executeFetchRequest:request error:&error] mutableCopy] autorelease];

并想在 UIViewController 的 dealloc 方法中再次释放它

[self.speakerFetchResults release];

但是,如果我分析我的文件,我会得到 [self.speakerFetchResults 发布];以下警告:

调用者此时不拥有的对象的引用计数不正确减少。

此外(我已经测试过了)我收到了这条消息

[ self 释放]

问题。

所以我有点困惑并删除了所有“ self ”。在此版本中或通常会导致程序中出现很多错误。所以我认为分析器是错误的,但我只是想请你帮忙。

你怎么看?

感谢您的帮助。

最佳答案

你不应该 call release on the object returned by the getter (getter 可能有副作用、自定义逻辑、返回自动释放的对象等,因此您不能假设 [self.speakerFetchResults release][speakerFetchResults release] 具有相同的结果)。

你可以简单地做:

self.speakerFetchResults = nil; // this releases the old value

或者,在 dealloc 中,不鼓励使用访问器:

[speakerFetchResults release];

关于ios - 使用 self.property 释放属性 - 分析器中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293151/

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