Ios4 Xcode 4静态代码分析问题

Ios4 Xcode 4静态代码分析问题,ios4,xcode4,static-analysis,clang-static-analyzer,Ios4,Xcode4,Static Analysis,Clang Static Analyzer,这是我先前关于Xcode 4静态分析器的问题的后续部分。这并不是一个特别的问题,因为我现在的代码可以按需要工作,但我只是想知道在幕后是如何工作的。考虑下面的代码: - (IBAction)cameraButtonPressed:(id)sender { if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO) { return

这是我先前关于Xcode 4静态分析器的问题的后续部分。这并不是一个特别的问题,因为我现在的代码可以按需要工作,但我只是想知道在幕后是如何工作的。考虑下面的代码:

- (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];

    NSString *theString = [[NSString alloc] initWithString:@"cameraButtonPressed done"];
    NSLog(@"%@", theString);
}
对我来说,这段代码看起来有两个对象(cameraUI和theString)需要释放。然而,analyze函数正确地识别出只有字符串需要在方法结束时释放,即使这两个对象都是从alloc init返回的,根据我的经验,这总是意味着在完成时释放


我这里的问题是,静态代码分析器如何知道不将cameraUI标记为一个问题?

我认为这是静态代码分析器的一个错误。分配给cameraUI的UIImagePickerController实例应在非垃圾收集环境(如iOS)中释放或自动释放