-1

今日、XCodeのBuild> Analyze機能を発見したので、見つけたすべてのエラーを調べて対処しようとしています。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

これらの各行の警告は、「オブジェクトの漏れの可能性」です。これらの3つのオブジェクトすべてに、私のメソッドでreleaseメッセージが送信されます。deallocここで何が間違っている可能性がありますか?

ありがとう!

4

1 に答える 1

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を使用します。それは物事をとても簡単にします。

于 2012-10-23T21:45:34.777 に答える