我正在尝试使用 UIDocumentInteractionController OpenIn 菜单将在我的应用程序中生成的图像发送到其他应用程序。我正在使用以下代码将 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 (code=1, address... crash),但是在 iOS 4.3 设备上(The应用程序向上兼容 4.3)我在控制台中收到此错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType actionSheet:clickedButtonAtIndex:]: unrecognized selector sent to instance 0x16b7f0'
我一直在阅读 Apple 关于 UIDocumentInteractionController 和 UIDocumentInteractionControllerDelegate 的文档,这些文档是我在我的类 @interface 中实现的,但似乎不需要任何可选的委托方法来满足我的需要或在这次崩溃中有所帮助。
无法弄清楚什么是错的或缺少的。任何帮助,将不胜感激。