0

NSSavePanel を使用して、ユーザーがアプリに保存する画像を選択できるようにしています。アプリのサンドボックスと資格を有効にするまで、すべてがうまくいきました。この問題は、既存のファイルを選択すると発生します。私のコードは次のようなものです:

// ファイルの保存先への URL と保存先の CGImageDestination を作成します。CGImageDestinationRef imageDestination = CGImageDestinationCreateWithURL((CFURLRef)[savePanel URL], (CFStringRef)newUTType, 1, NULL); CGImageDestinationAddImage(imageDestination, cgimage, (CFDictionaryRef)metaData); const bool result = CGImageDestinationFinalize(imageDestination);

画像を保存するために新しいファイルを選択すると機能しますが、既存のファイルを選択すると、既存のファイルのほかに奇妙な名前のファイルが作成され、宛先 URL の内容を上書きできません。さらに悪いことに、エラーが返されず、障害を検出できません。これは CoreGraphics または私のコードのバグですか? この問題の回避策はありますか?

4

1 に答える 1

3

最後に、サンドボックス環境で動作している既存のイメージを上書きするコア グラフィックス呼び出しの組み合わせを発見しCGDataConsumerCreateWithURLましたCGImageDestinationCreateWithDataConsumer。そのため、サンドボックスが有効になっているCGImageDestinationCreateWithURLと(少なくとも では)壊れているようです。OS X Lion 10.7.1

于 2011-10-07T05:36:15.827 に答える