gpt4 book ai didi

ios - 使用单例时的 Xcode 静态分析器性能

转载 作者:行者123 更新时间:2023-12-03 16:55:24 25 4
gpt4 key购买 nike

我无法理解 XCode 中的静态分析器如何识别涉及单例的可能泄漏。在下面的代码中,我收到警告,第一行以及第一个 return 语句中可能存在泄漏。分析器将这些警告放在第二个返回语句上。由于我在这些行中没有进行任何分配,因此我认为是对单例的访问及其可能的分配导致了此警告。谁能向我解释一下静态分析器发生了什么?

        if ((self.tableView.editing & ([[[[GroupList sharedGroupList] newGroup] linkArray] count] < [[GrazeConstants sharedGrazeConstants] maxLinksPerGroup])) | 
(([[[[GroupList sharedGroupList] newGroup] linkArray] count] == 0) & !self.tableView.editing)) {
return ([[[[GroupList sharedGroupList] newGroup] linkArray] count]+1);
} else {
return ([[[[GroupList sharedGroupList] newGroup] linkArray] count]);
}

最佳答案

根据 Cocoa 内存管理约定,以

new 为前缀的方法相当于 alloc+init 对。静态分析器假设您的 newGroup 方法返回一个保留计数 +1 的对象,而不是自动释放的对象。

重命名该方法(例如,groupmakeGroup),或添加 NS_RETURNS_NOT_RETAINED attribute如果您无法更改名称。

关于ios - 使用单例时的 Xcode 静态分析器性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6713524/

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