Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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 ObjectiveC-读取从Dropbox获取的ePub文件_Ios_Objective C_Xcode_Dropbox Api_Epub - Fatal编程技术网

Ios ObjectiveC-读取从Dropbox获取的ePub文件

Ios ObjectiveC-读取从Dropbox获取的ePub文件,ios,objective-c,xcode,dropbox-api,epub,Ios,Objective C,Xcode,Dropbox Api,Epub,所以我对这个很迷茫,对epub文件也很陌生。我做了一些搜索,但似乎不能把所有的东西都放在脑海里 我的应用程序使用DropBox的选择器API从用户的DropBox文件夹中获取文件。在本例中,我想打开一个.epub文件。因此,当用户选择一个文件时,DropBox API会向该文件返回一个NSURL对象。例如: https://dl.dropboxusercontent.com/1/view/e8bmxpkree6nc67/The%20Art%20of%20War.epub 现在,我尝试了几种不同

所以我对这个很迷茫,对epub文件也很陌生。我做了一些搜索,但似乎不能把所有的东西都放在脑海里

我的应用程序使用DropBox的选择器API从用户的DropBox文件夹中获取文件。在本例中,我想打开一个.epub文件。因此,当用户选择一个文件时,DropBox API会向该文件返回一个NSURL对象。例如:

https://dl.dropboxusercontent.com/1/view/e8bmxpkree6nc67/The%20Art%20of%20War.epub
现在,我尝试了几种不同的工具来读取这个文件。最初,我尝试使用。但当我打电话时:

epubURL; // The url from DropBox (shown above)
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
self.epubController = [[KFEpubController alloc] initWithEpubURL:epubURL andDestinationFolder:documentsURL];
self.epubController.delegate = self;
[self.epubController openAsynchronous:YES]
我会返回一个错误,文件无法解压缩。错误内容如下:

Epub Error: Error Domain=KFEpubKitErrorDomain Code=1 "Could not extract epub file." UserInfo=0x170275400 {NSLocalizedDescription=Could not extract epub file.}
我研究了代码,把问题缩小了一点。KFEpubKit使用该实用程序解压缩文件。从这一点开始,我有点困了。
[SSZipArchive unzipFileAtPath:toDestination:][/code>调用在与
epubURL.path
一起使用时似乎失败。我不确定这是否与我的文件是.epub扩展名而不是.zip扩展名有关。或者,在从DropBox获取URL并将其提供给KFEpubKit工具之前,可能有一些事情要做


最后,我希望必须使用UIWebView显示该书的文本。但我只是不知道如何处理这个.epub文件。我应该如何处理Dropbox中的文件?非常感谢您的帮助

快速浏览表明
SSZipArchive
需要本地文件URL,而不是远程HTTP URL。首先尝试下载文件(包含URL内容的NSData,然后写入某个临时文件),然后创建指向临时文件的文件URL,并将其发送到KFEpubController:

// Download the file from dropbox
epubURL; // The url from DropBox (shown above)
NSData * epubData = [NSData dataWithContentsOfURL:epubURL];  
NSString * tempPath = [NSTemporaryDirectory() stringByAddingPathComponent:@"temp.epub"];
[epubData writeToFile:tempPath atomically:YES];

NSURL *tempURL = [NSURL URLWithString:tempPath];
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
self.epubController = [[KFEpubController alloc] initWithEpubURL:tempURL andDestinationFolder:documentsURL];
// etc.
(从内存中编码。)所有正常的警告都适用于这里——您需要在下载时进行适当的进度/错误处理,删除临时文件,等等