1

我的 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(在单击项目菜单时按住选项),但没有运气。最新的 Xcode 中的分析器是否有问题,或者我还缺少什么?

4

3 回答 3

1

picker您应该在UIImagePickerControllerDelegate回调方法中释放。

于 2011-07-08T14:37:43.503 回答
1

过去,内置在 Xcode 中的静态代码分析器帮助我发现了这些疏忽,但在我当前安装的 Xcode 4.0.2 中,它没有发现这个问题。

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

于 2011-07-09T15:51:03.357 回答
0

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

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

于 2011-07-08T14:31:32.907 回答