XCode - 使用Build>分析,潜在的泄漏警告

时间:2012-10-23 21:32:12

标签: iphone ios xcode debugging

我刚刚发现了Build>今天分析XCode的功能,所以我试图解决它发现的所有错误。有几行XCode发现异常会让我感到困惑:

    //Test View
    self.imageViewTest = [[UIImageView alloc] init];
    self.imageViewTest.frame = CGRectMake(0, 0, 100, 100); // <=== Leak
    [self.view addSubview:self.imageViewTest];
    //Test View 2
    self.imageViewTestB = [[UIImageView alloc] init];
    self.imageViewTestB.frame = CGRectMake(0, 100, 100, 100); // <=== Leak
    [self.view addSubview:self.imageViewTestB];

以及后来我的视频捕捉设置

    self.captureOutput = [[AVCaptureVideoDataOutput alloc] init];
    captureOutput.alwaysDiscardsLateVideoFrames = YES; // <=== Leak

每条线的警告是“物体的潜在泄漏”。我的release方法中的所有3个对象都会发送dealloc消息。这可能有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:4)

如果您没有使用ARC,并且您的属性设置了retain属性,那么是,这些是泄漏。这一行:

self.imageViewTest = [[UIImageView alloc] init];

应该是:

UIImageView *iv = [[UIImageView alloc] init];
self.imageViewTest = iv;
[iv release];

或:

self.imageViewTest = [[[UIImageView alloc] init] autorelease];

或者更好的是,使用ARC。它使事情变得更加容易。