0

以下のコードを使用してバックグラウンド スレッドで UIImage を作成し、このイメージをメイン スレッドのビューのイメージとして設定しています。ときどき、不正なアクセス エラーが発生します。バックグラウンド スレッドで UIImage を作成するべきではないかどうか疑問に思っています。何かご意見は?

CGImageRef imageRef =
    CGImageCreate(serverInit.rfbWidth,serverInit.rfbHeight,bitsPerComponent,bitsPerPixel,bytesPerRow,colorSpaceRef,bitmapInfo,provider,NULL,NO,renderingIntent);

    screenImage = [UIImage imageWithCGImage:imageRef];

    CFRelease(imageRef);

    [view performSelector:@selector(replaceImage:) onThread:[NSThread mainThread] withObject:screenImage waitUntilDone:NO];
4

1 に答える 1

0

これを使ってみてください、screenImageがリリースされるのを防ぎます

CGImageRef imageRef = CGImageCreate(serverInit.rfbWidth,serverInit.rfbHeight,bitsPerComponent,bitsPerPixel,bytesPerRow,colorSpaceRef,bitmapInfo,provider,NULL,NO,renderingIntent);
    screenImage = [UIImage imageWithCGImage:imageRef];
    CFRelease(imageRef);
dispatch_sync(dispatch_get_main_queue(), ^{
   [view replaceImage:screenImage];
});
于 2012-10-16T20:17:55.103 に答える