我终于将应用程序更新为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");
}