Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS vfr阅读器框架无法使用下载的pdf_Ios_Vfr Reader - Fatal编程技术网

iOS vfr阅读器框架无法使用下载的pdf

iOS vfr阅读器框架无法使用下载的pdf,ios,vfr-reader,Ios,Vfr Reader,我找到了vfr阅读器框架,同时寻找一些更好的替代方案,以便在应用程序中显示pdf。在我的上下文中,我需要下载一个pdf;它尚未包含在应用程序包中。将vfr框架与嵌入式pdf一起使用很容易,但到目前为止,我一直很难让它与下载的数据一起工作,我将这些数据写入文件,然后使用其路径初始化ReaderDocument。我能够将同一个文件加载到UIWebView中没有问题,所以我不相信这是数据。代码如下: NSString *fullPathToPDF = [[[self appDelegate] urlF

我找到了vfr阅读器框架,同时寻找一些更好的替代方案,以便在应用程序中显示pdf。在我的上下文中,我需要下载一个pdf;它尚未包含在应用程序包中。将vfr框架与嵌入式pdf一起使用很容易,但到目前为止,我一直很难让它与下载的数据一起工作,我将这些数据写入文件,然后使用其路径初始化ReaderDocument。我能够将同一个文件加载到UIWebView中没有问题,所以我不相信这是数据。代码如下:

NSString *fullPathToPDF = [[[self appDelegate] urlForFileUnderRecursiveDocWithName:self.pdfName andOptionallyStartingAtDirectory:[[self appDelegate] pathURLForImagesDirectory]] path];
        ReaderDocument *pdfDoc = [ReaderDocument withDocumentFilePath:fullPathToPDF password:nil];
生成的pdfDoc要么为null,要么在向其传递如上所述的完整路径时,由于ReaderDocument第229行的断言而崩溃

NSAssert(NO, @"CGPDFDocumentRef == NULL");
因为(我做了一个合理的假设)这一行(217;同一类):

无法创建CGPDFDocumentRef。我之前提到了传递完整路径和只传递文件名之间的区别,这是因为在查看代码时,ReaderDocument类似乎对它希望在哪里找到文件做出了一些假设。无论我将文件保存到何处,或者传入的内容是什么,我都无法使用DocumentFilePath方法使其工作

重申一下,我可以使用完全相同的文件并在UIWebView中打开它,这没问题


那么,有没有人有同样的问题,或者,能够成功地完成我的尝试?谢谢

很抱歉这么晚才回答。我自己也遇到了这个问题,所以我想我应该把我的智慧传给别人

我猜您正在将PDF下载到临时目录。此框架正在NSDocumentDirectory中查找文件。因此,当您要保存下载的文件时,只需保存到如下路径:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *baseDocumentPath = [paths objectAtIndex:0];
NSString *filePath = [baseDocumentPath stringByAppendingPathComponent:@"/temp.pdf"];
一旦您这样做,它将正确加载


p、 s如果我最终修改ReaderDocument以允许使用临时目录,我将在此处发布编辑。

很抱歉这么晚才回答这个问题。我自己也遇到了这个问题,所以我想我应该把我的智慧传给别人

我猜您正在将PDF下载到临时目录。此框架正在NSDocumentDirectory中查找文件。因此,当您要保存下载的文件时,只需保存到如下路径:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *baseDocumentPath = [paths objectAtIndex:0];
NSString *filePath = [baseDocumentPath stringByAppendingPathComponent:@"/temp.pdf"];
一旦您这样做,它将正确加载


p、 s如果我最终修改ReaderDocument以允许使用临时目录,我将在此处发布编辑。

谢谢您的回答,Henry。正如预期的那样,我认为您的想法是修改ReaderDocument,使其接受绝对路径,并在存在时使用它,除了假定在NSDoc下的现有路径之外。。。这是个好主意。再次感谢。谢谢你的回答,亨利。正如预期的那样,我认为您的想法是修改ReaderDocument,使其接受绝对路径,并在存在时使用它,除了假定在NSDoc下的现有路径之外。。。这是个好主意。再次感谢。