我终于将应用程序更新到 Xcode 4.5 和 ARC。我有几个问题。在代码中的几个点,我CFRelease()
用于函数返回的值CFxxCopyxx()
。
但是,有了CFRelease()
,我得到了一个
*** -[CFURL 类]:在运行时发送到已释放实例的消息。
如果我删除CFRelease()
,我会收到有关 Object leaked 的编译警告,这对我来说很有意义。我错过了什么?
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");
}