我的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中,分析器是否有问题,或者我还缺少其他什么东西?
答案 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];