【问题标题】:Downloading and extracting zip files with RestKit 0.20.x使用 RestKit 0.20.x 下载和解压 zip 文件
【发布时间】:2013-09-19 05:59:37
【问题描述】:

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

    • 谢谢@serrrgi,它真的有效,现在就想要,你说的是哪个备份,iTunes 创建的备份?
    • 它还缓存文件。如果我再次发送下载请求,它会从缓存中下载。如何删除缓存或强制从 Web 服务器重新下载?
    【解决方案2】:

    来自 RestKit:Reskit link

    “RestKit 提供了一个强大的对象映射引擎,它与 Core Data 和一组简单的网络原语无缝集成,用于映射构建在 AFNetworking 之上的 HTTP 请求和响应。”

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

    【讨论】:

      猜你喜欢
      • 2021-03-07
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多