一部のOSXコードをiOSに移植しており、CIImageのバイトにアクセスする必要があります。OSXバージョンはNSBitmapImageRepでこれを行いますが、iOSではいくつかのフープを飛び越える必要があります。
これが私が実行しようとしているコードです
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:image fromRect:image.extent];
CGDataProviderRef provider = CGImageGetDataProvider(cgImage);
CFDataRef data = CGDataProviderCopyData(provider);
CGRect extent = [image extent];
//png.Load((UInt8*)CFDataGetBytePtr(data), extent.size.width, extent.size.height, true);
CFRelease(data);
//CGDataProviderRelease(provider);
期待どおりに動作しますが、しばらくするとアプリがクラッシュします。理由はわかりません。私はメモリリーク/アウトオブバウンズメモリを推測しています。すべてが正しく解放されていることがわかる限り...これらの行をコメントアウトしても、何もクラッシュしません。コメントすると、アプリでCGDataProviderReleaseがすぐにクラッシュします。