使用ARC进行CF发布

时间:2012-10-25 19:23:19

标签: objective-c cocoa automatic-ref-counting

我终于将应用程序更新为Xcode 4.5和ARC。我遇到了一些问题。 在代码中的几个点,我使用CFRelease()来表示CFxxCopyxx()函数返回的值。

然而,使用CFRelease(),我得到了

  

*** - [CFURL类]:在运行时发送到解除分配的实例的消息。

如果我删除了CFRelease(),我会收到关于Object泄露的编译警告,这对我来说很有意义。我错过了什么?

char path[PATH_MAX]={0};
CFBundleRef mainBundle = CFBundleGetMainBundle();
if (NULL != mainBundle)
{
    CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
    if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX))
    {
        NSLog(@)"CFURLGetFileSystemRepresentation() failed.\n");
    }
    CFRelease(resourcesURL);
}else
{
    NSLog(@"CFBundleGetMainBundle() failed.\n");
}

0 个答案:

没有答案