Xcode 4 Analyze未检测到内存泄漏情况

时间:2011-07-08 14:17:04

标签: ios4 xcode4 static-analysis clang-static-analyzer

我的iOS应用中有这个代码:

- (IBAction)cameraButtonPressed:(id)sender
{
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO)
    {
        return;
    }

    UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
    cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
    cameraUI.allowsEditing = NO;
    cameraUI.delegate = self;
    [self presentModalViewController:cameraUI animated:YES];
}

此代码的问题是方法末尾需要[cameraUI release];。在过去,Xcode中内置的静态代码分析器帮助我抓住了这些疏忽,但是在目前的Xcode 4.0.2安装中,它没有发现这个问题。我试图重新启动Xcode,并尝试了Clean Build Folder(单击Project菜单时按住选项),并且没有运气。在最新的Xcode中,分析器是否有问题,或者我还缺少其他什么东西?

3 个答案:

答案 0 :(得分:1)

您应该在picker回调方法中发布UIImagePickerControllerDelegate

答案 1 :(得分:1)

  

过去,静态代码分析器   内置到Xcode中帮我抓住了   这些疏忽,但与我目前   Xcode 4.0.2安装,它没有找到   这个问题。

鉴于John Boker的回答,您可能不再关心,但如果这确实是一个问题,您可以从http://clang-analyzer.llvm.org/release_notes.html下载Clang静态分析器的旧版本(或更新版本),然后告诉Xcode将它与set-xcode-analyzer命令(http://clang-analyzer.llvm.org/xcode.html)一起使用。

答案 2 :(得分:0)

UIImagePickerController是自动释放的对象,表示

UIImagePickerController * cameraUI = [[[UIImagePickerController alloc] init] autorelease];