【发布时间】:2011-04-28 13:16:55
【问题描述】:
我正在尝试通过 QuickLook 框架打开 PDF,而不使用 UIScrollView...
我相信我错过了什么......
我认为我出错的地方是我需要使用 QLPreviewController,而 QLPreviewController 上的数据源必须符合 QLPreviewItem。文档指出 NSURL 确实符合 QLPriewItem 所以我将 preview.dataSource 设置为抛出错误的 NSURL:
[NSURL numberOfPreviewItemsInPreviewController:]:无法识别的选择器发送到实例
由于未捕获的异常“NSInvalidArgumentException”而终止应用,原因:“-[NSURL numberOfPreviewItemsInPreviewController:]:无法识别的选择器已发送到实例 0x5b5f200”
这让我觉得 NSURL 不符合。
所有我认为必要的代码......
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item {
return YES;
}
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller {
return [documents count];
}
- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index {
return [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[documents objectAtIndex:index] ofType:nil]];
}
- (void)pushPDF {
QLPreviewController *preview = [[QLPreviewController alloc] init];
preview.dataSource = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"MCIT_Quiz" ofType:@"pdf"]];
//preview.currentPreviewItemIndex = 0;
[self presentModalViewController:preview animated:YES];
[preview release];
}
【问题讨论】:
标签: iphone objective-c ios ios4 quicklook