我正在将我的项目从 RestKit 0.10 升级到 0.20.2。顺利完成。现在我需要从 URL 下载一个 zip 文件并解压缩它。我在 RestKit 中找不到任何方法来做到这一点。任何人都可以知道这件事。
谢谢
我正在将我的项目从 RestKit 0.10 升级到 0.20.2。顺利完成。现在我需要从 URL 下载一个 zip 文件并解压缩它。我在 RestKit 中找不到任何方法来做到这一点。任何人都可以知道这件事。
谢谢
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 链接
“RestKit 提供了一个强大的对象映射引擎,它与 Core Data 和一组简单的网络原语无缝集成,用于映射构建在 AFNetworking 之上的 HTTP 请求和响应。”
对于下载,您可以使用 AFNetworking AFNetworking 链接 对于解压缩,您可以使用 zipArchive 女巫非常好。zip存档