Jus*_*kva 22 ios uidocumentinteraction ios5
我实现了一个UIDocumentInteractionController来将文件发送到其他应用程序.该文件是.txt文件.
这是代码:
UIDocumentInteractionController *interactionController = [[UIDocumentInteractionController alloc] init];
[interactionController setURL:[NSURL fileURLWithPath:filePath]];
[interactionController setUTI:@"public.text"];
[interactionController setDelegate:self];
[interactionController presentOpenInMenuFromBarButtonItem:actionBarButtonItem animated:YES];
Run Code Online (Sandbox Code Playgroud)
菜单打开正常,显示像Pages,Dropbox等应用程序,如我所料.但是当我点击其中一个时,Open In菜单会解除并且不执行任何操作(文件未发送且目标应用程序永远不会打开.
我尝试实现委托方法documentInteractionController:canPerformAction:和documentInteractionController:performAction:触发copy:和print:调用使用选项菜单(而不是菜单中的打开),并拉出一个只列出页面的菜单,但仍然无效.
怎么解决这个问题?
Jus*_*kva 49
我找到了答案,这是内存管理.我创建了UIDocumentInteractionController然后呈现它,但我没有它作为实例变量.ARC在它有机会做任何事情之前解除它.这包括将文档发送到外部应用程序.
这个bug没有出现在iPhone上,但是在iPad上它会出错,因为popover架构的工作方式有点不同,最终会在解除分配时尝试绘制它.这就是提醒我这个bug的原因.
ros*_*ino 16
此错误也出现在iPhone/iPod上.刚设置:
@property (nonatomic, retain) UIDocumentInteractionController *docController;
Run Code Online (Sandbox Code Playgroud)
它将被保留,文档将传递给新的应用程序.
| 归档时间: |
|
| 查看次数: |
12714 次 |
| 最近记录: |