应用程序崩溃在CFRelease上

时间:2012-02-10 11:11:35

标签: objective-c core-foundation

有时我的应用程序会在CFRelease(theURL);

上崩溃
CFURLRef theURL = CFURLCreateFromFSRef( kCFAllocatorDefault, inRef );
NSString *currentPath = [(NSURL *)theURL path];
CFRelease(theURL);  

Thread 0 Crashed:
0   com.apple.CoreFoundation        0x92a53354 CFRelease + 36  

为什么呢?

  

创建规则

     

Core Foundation函数的名称表明您拥有的时间   返回的对象:

     

在名称中嵌入“创建”的对象创建函数;   对象复制函数,名称中嵌入了“复制”。如果   你拥有一个物体,你有责任放弃所有权   (完成后使用CFRelease)。

1 个答案:

答案 0 :(得分:5)

CFRelease参数为NULL时,函数将崩溃。检查从CFURLCreateFromFSRef返回的值。