Objective c 带弧释放
我终于将一个应用程序更新到Xcode 4.5和ARC。我有一些问题。 在代码中的几个点上,我使用Objective c 带弧释放,objective-c,cocoa,automatic-ref-counting,Objective C,Cocoa,Automatic Ref Counting,我终于将一个应用程序更新到Xcode 4.5和ARC。我有一些问题。 在代码中的几个点上,我使用CFRelease()来处理CFxxCopyxx()函数返回的值 然而,使用CFRelease(),我得到了一个 ***-[CFURL类]:在运行时发送到解除分配实例的消息 如果我删除CFRelease(),我会收到一条关于对象泄漏的编译警告,这对我来说很有意义。我错过了什么 char path[PATH_MAX]={0}; CFBundleRef mainBundle = CFBundleGetMa
CFRelease()
来处理CFxxCopyxx()
函数返回的值
然而,使用CFRelease()
,我得到了一个
***-[CFURL类]:在运行时发送到解除分配实例的消息
如果我删除CFRelease()
,我会收到一条关于对象泄漏的编译警告,这对我来说很有意义。我错过了什么
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");
}
3个月没有回答!!!!原因,错误的标签。。。。至少标记到cocoa或objective-c,有人会读到……尝试编写
if(resourcesURL)CFRelease(resourcesURL)代码>是否在代码上运行分析器?从菜单栏中选择产品>分析。每个版本的分析器都会变得更好,因此您应该使用最新版本的Xcode运行它。我认为您需要CFRelease
,错误发生在哪一行?CFRelease
?有什么原因不能使用-[NSBundle resourcePath]
吗?需要处理的代码将更少。