UIDocumentInteractionController OpenIn Menuを使用して、自分のアプリで生成された画像を他のアプリに送信しようとしています。このコードでUIImageをディスクに保存しています:
fileJpeg = [NSTemporaryDirectory() stringByAppendingPathComponent:@"activeImage.jpg"];
jpegFileURL = [NSURL fileURLWithPath:fileJpeg];
UIImage *imageToWrite = image;
[UIImageJPEGRepresentation(imageToWrite, 1.0) writeToFile:fileJpeg atomically:YES];
別の方法でjpegFileURLにアクセスして、MFMailComposeViewControllerを使用して画像を電子メールで送信していますが、完全に機能するため、NSURLは有効です。しかし、画像を別のアプリに送信しようとすると(送信するだけで、プレビュー機能を実装していません)、アプリがクラッシュします。方法は次のとおりです。
- (IBAction)openInOtherApp:(id)sender{
UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL: jpegFileURL];
controller.delegate = self;
CGRect rect = self.view.frame;
[controller presentOpenInMenuFromRect:rect inView:self.view animated:YES];
}
[開く]メニューが表示されます。利用可能なアプリのボタンをタップするとクラッシュします。iOS6(6.0.1)およびiOS5(5.1.1)デバイスでテストすると、コンソールにエラー出力が表示されません(通常のEXC_BAD_ACCESS(コード= 1、アドレス...クラッシュ)が、iOS 4.3デバイス(アプリは4.3以上の互換性があります)コンソールでこのエラーが発生します:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType actionSheet:clickedButtonAtIndex:]: unrecognized selector sent to instance 0x16b7f0'
私はクラス@interfaceに実装しているUIDocumentInteractionControllerとUIDocumentInteractionControllerDelegateに関するAppleのドキュメントを読んでいますが、オプションのデリゲートメソッドはどれも私のニーズに必要ではなく、このクラッシュに役立つようです。
何が間違っているのか、何が欠けているのか理解できません。どんな助けでもいただければ幸いです。