【发布时间】:2013-09-19 05:59:37
【问题描述】:
我正在将我的项目从 RestKit 0.10 升级到 0.20.2。顺利完成。 现在我需要从 URL 下载一个 zip 文件并将其解压缩。我在 RestKit 中找不到任何方法来做到这一点。谁能知道这件事。
谢谢
【问题讨论】:
标签: iphone ios objective-c download restkit-0.20
我正在将我的项目从 RestKit 0.10 升级到 0.20.2。顺利完成。 现在我需要从 URL 下载一个 zip 文件并将其解压缩。我在 RestKit 中找不到任何方法来做到这一点。谁能知道这件事。
谢谢
【问题讨论】:
标签: iphone ios objective-c download restkit-0.20
Restkit 0.2 使用 AFNetworking。在项目中配置 Restkit 后,您还可以使用 AFNetworking。因此,您可以像这样下载文件:
- (void)downloadWithOutputPath:(NSString *)aPath progress:(void(^)(NSUInteger, long long , long long ))onProgress success:(void (^)(id<Attachment>))onSuccess error:(void (^)(NSError *))onError
{
NSURLRequest *request = [NSURLRequest requestWithURL:self.url];
AFHTTPRequestOperation *operation = [self.client HTTPRequestOperationWithRequest:request
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSURL *url = [NSURL fileURLWithPath:aPath];
NSError *error;
[self skipBackupForURL:url error:&error];
onSuccess(self);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
onError(error);
}];
[operation setDownloadProgressBlock:onProgress];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:aPath
append:NO];
[operation start];
}
另外请注意,您必须将下载的文件标记为从备份中排除。
- (void)skipBackupForURL:(NSURL *)anURL error:(NSError **)anError
{
[anURL setResourceValue:[NSNumber numberWithBool:YES]
forKey:NSURLIsExcludedFromBackupKey error:anError];
}
对于解压文件,我们使用https://github.com/soffes/ssziparchive
【讨论】:
来自 RestKit:Reskit link
“RestKit 提供了一个强大的对象映射引擎,它与 Core Data 和一组简单的网络原语无缝集成,用于映射构建在 AFNetworking 之上的 HTTP 请求和响应。”
对于下载,您可以使用 AFNetworking AFNetworking link 对于解压缩,您可以使用 zipArchive 女巫非常好。 zipArchive
【讨论】: