使用RestKit 0.20.x下载和解压缩zip文件

时间:2013-09-19 05:59:37

标签: iphone ios objective-c download restkit-0.20

我正在将我的项目从RestKit 0.10升级到0.20.2。成功完成。 现在我需要从URL下载一个zip文件并将其解压缩。我在RestKit中找不到任何方法来这样做。任何人都可以知道这一点。

由于

2 个答案:

答案 0 :(得分:2)

来自RestKit:Reskit link

“RestKit提供了一个功能强大的对象映射引擎,可以与Core Data无缝集成,还有一组简单的网络基元,用于映射建立在AFNetworking之上的HTTP请求和响应。”

要下载,您可以使用AFNetworking AFNetworking link 对于解压缩,你可以使用zipArchive女巫非常好。 zipArchive

答案 1 :(得分:2)

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