Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c ARC:使用核心基础的Objul-C代码的分析器警告 使用分析器在一些Objul-C COCOA/Core基金会代码中,我得到了一些我无法修复的错误,因为我不理解它们。_Objective C_Cocoa_Core Foundation_Clang Static Analyzer - Fatal编程技术网

Objective c ARC:使用核心基础的Objul-C代码的分析器警告 使用分析器在一些Objul-C COCOA/Core基金会代码中,我得到了一些我无法修复的错误,因为我不理解它们。

Objective c ARC:使用核心基础的Objul-C代码的分析器警告 使用分析器在一些Objul-C COCOA/Core基金会代码中,我得到了一些我无法修复的错误,因为我不理解它们。,objective-c,cocoa,core-foundation,clang-static-analyzer,Objective C,Cocoa,Core Foundation,Clang Static Analyzer,错误#1: 在Objective-C类头中,我声明了这个属性 @property(readwrite) CFMutableSetRef gClients; 在正文中,我得到以下错误: 问题:为什么会泄漏?我把它存放在一个地方,以后再处理。我以为ARC知道如何处理CF“对象” 错误#2: 稍后,我在释放对象时出现以下错误: 问题:如何将这两个Analyzer警告考虑在内,以创建实际工作(self.gClients在调用ClientInitialize和DestroyAllClient之间存在

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

@property(readwrite) CFMutableSetRef gClients;
在正文中,我得到以下错误:

问题:为什么会泄漏?我把它存放在一个地方,以后再处理。我以为ARC知道如何处理CF“对象”

错误#2: 稍后,我在释放对象时出现以下错误:


问题:如何将这两个Analyzer警告考虑在内,以创建实际工作(self.gClients在调用ClientInitialize和DestroyAllClient之间存在)但未被标记的代码?

ARC在没有手动干预的情况下无法管理CF对象。你需要先做一些工作


参见“ARC和免费桥接”。
(\uuu bridge\u transfer)有一些特殊的施法技巧

谢谢你的回复。你建议我怎么做
gClients
声明为:
@property(readwrite)CFMutableSetRef gClientsself.gClients=(保留桥)CFSetCreateMutable(NULL,0,NULL);导致错误。
\u bridge\u retained
是类型修饰符,如
volatile
const
。请尝试
(\uuuuu桥\uu保留的CFMutableSetRef)
。你读过这篇文章吗?这里的解释非常明确。
\u bridge\u retained
与您和@Adrien想要的正好相反。当返回该对象的Create函数已经保留该对象时,它将再次保留该对象。您需要
\uuuuuuuu bridge\uu transfer
,它告诉ARC“请帮我处理好这件事,好吗?”。(您链接到的文章中提到了这一点。)