我正在将Xcode 9.4与Objective C一起使用。 我想按照以下代码使用PDFView显示pdf文件
PDFView * pdfView = [[PDFView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
NSString* path = [[NSBundle mainBundle] pathForResource:@"abc" ofType:@"pdf"];
NSData* data = [NSData dataWithContentsOfFile:path];
PDFDocument *pdfDocument = [[PDFDocument alloc] initWithData:data];
[pdfView setDocument:pdfDocument];
但是由于SetDocument无法识别的选择器实例以及以下错误而失败。
错误:
-[PDFView setDocument:]:无法识别的选择器已发送到实例0x101367c40
错误:执行被中断,原因:试图取消引用无效的ObjC对象或向其发送无法识别的选择器。 该过程已返回到表达式求值之前的状态。
我无法确定确切的问题,请帮忙。
谢谢。
答案 0 :(得分:1)
根据Apple的PDFView文档,有一个document
属性保存PDF文档。不用调用setDocument
,而是将document
属性设置为您的pdfDocument
变量。
答案 1 :(得分:1)
最后,
我找到了解决方案, 只需在情节提要中添加UIView,然后在Inspector中将类设置为PDFView。 并创建PDFView的IBOutlet对象,并将其分配给情节提要中的UIView,并将pdfdocument以及属性(如果需要)设置为PdfView。
代码:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Swift" ofType:@"pdf"]];
PDFDocument *document = [[PDFDocument alloc]initWithURL:url];
_pdfView.document = document;
_pdfView.frame = self.view.frame;
_pdfView.displayDirection = kPDFDisplayDirectionHorizontal;
感谢大家所做的宝贵努力。
答案 2 :(得分:1)
我遇到了同样的问题,对我来说,原因是另一个开发人员在我们的项目中添加了“ UIImage-PDF”窗格,该窗格还提供了一个名为PDFView的类,但界面不同。
在此处输入此答案,以防其他人与我有相同的根本原因。