0

メモリ管理に関する助けが必要です。画面に約 500 フレームを表示しています。私のアプリはシミュレーターでは正常に動作しているようですが、iPad では約 450 フレームを表示した後にクラッシュします。メモリ不足が原因で問題が発生しているようです。以下は私のコードの一部です。オブジェクトを正しく解放していますか、それとも他に何かする必要がありますか?

- (void)drawBufferWidth:(int)width height:(int)height pixels:(unsigned char*)pixels
{
     CGRect rect = CGRectInset(self.view.bounds, 0.0, 0.0);
     UIImageView *img = [[UIImageView alloc] initWithFrame:rect];
     CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
     CGContextRef gtx = CGBitmapContextCreate(pixels, width, height, BitsPerComponent, BytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast);
     CGImageRef myimage = CGBitmapContextCreateImage(gtx); 
     img.image = [UIImage imageWithCGImage:myimage];

     CGContextRelease(gtx);
     CGImageRelease(myimage);
     CGColorSpaceRelease(colorSpace);
}
4

1 に答える 1

5

UIImageViewこのメソッドは、2 行目で作成しているときにリークしているようです。alloc対応するreleaseまたはのないがありautoreleaseます。すべてのメソッドが含まれていないと思われるため、「表示される」と言います(UIImageViewで何かを行うコードは表示されません...)。

さまざまな CGRef の管理は問題ありません。

于 2013-04-04T16:27:20.240 に答える