ARC:使用核心基础的Objective-C代码的分析器警告

时间:2013-05-13 21:54:21

标签: objective-c cocoa core-foundation clang-static-analyzer

在某些Objective-C上使用分析器| Cocoa / Core Foundation代码,我收到了一些我无法修复的错误,因为我不理解它们。

错误#1 : 在Objective-C类头文件中,我声明了这个属性。

@property(readwrite) CFMutableSetRef gClients;

在正文中,我收到以下错误:

enter image description here

问题:为什么会泄漏?我将它存储在一个属性中,以后再处理它。我以为ARC知道如何处理CF“对象”。

错误#2: 稍后,我在释放对象时遇到此错误:

enter image description here

问题:如何将这两个分析器警告考虑在内,以便创建实际可行的代码(self.gClients存在于对ClientInitialize和destroyAllClients的调用之间)但不会被标记?< / p>

1 个答案:

答案 0 :(得分:2)

ARC无需人工干预即可管理CF对象。你需要先做一些工作。

在“ARC和免费桥接”中查看http://www.idryman.org/blog/2012/11/22/arc-best-practices-and-pitfalls/。有(__bridge_transfer)的特殊铸造技巧。