我正在使用UIDocumentInteractionController
与其他应用共享文档(PDF)。
使用不同应用的视图显示正常但当我按任意应用打开/保存/共享文件时,我的应用程序崩溃。
我收到Unrecognised selector sent to instance
错误。
似乎错误来自我给的文件网址(不确定):
[UIDocumentInteractionController interactionControllerWithURL:url];
DocumentInteractionManager.h :
@interface DocumentInteractionManager : UIViewController <UIDocumentInteractionControllerDelegate>
@property (nonatomic, retain) UIDocumentInteractionController* documentInteractionController;
@property (nonatomic, copy) NSURL *url;
- (void)openDocumentFromRect:(UIView*)view withURL:(NSURL*)fileUrl;
@end
DocumentInteractionManager.m :
@implementation DocumentInteractionManager
@synthesize documentInteractionController;
@synthesize url;
//fileUrl is something like: file:///var/mobile/Containers/Data/Application/[APP]/Library/file.pdf
- (void)openDocumentFromRect:(UIView*)view withURL:(NSURL*)fileUrl {
self.url = fileUrl;
if (url) {
documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:self.url];
// Configure Document Interaction Controller
[documentInteractionController setDelegate:self];
CGRect rect = [view frame];
[documentInteractionController presentOptionsMenuFromRect:[view frame] inView:view animated:YES];
}
}
@end
修改
以下是我创建网址的方式:[NSURL fileURLWithPath:pdfPath]
请注意,当我使用UIActivityViewController
并通过AirDrop分享
EDIT2:
以下是我收到的一些不同消息(取决于我选择的应用):
[__NSCFString URL]: unrecognized selector sent to instance
任何想法?
答案 0 :(得分:0)
好的,我已经明白了。
我错误的是我在UIDocumentInteractionController
方法中实例化了- (void)openDocumentFromRect:(UIView*)view withURL:(NSURL*)fileUrl
。所以基本上当我离开那个方法时UIDocumentInteractionController
被摧毁了。
我现在在init方法中实例化UIDocumentInteractionController
,并且它按预期工作。