我有一些远程.tar.gz
文件,我正在下载到我的应用程序中,然后我需要取消归档。我正在使用输出流将文件写入磁盘,以便我的内存使用率很低。
现在,当我要解压缩文件时,我必须将其加载为NSData
。该文件约为1.2演出,所以这是我遇到问题的地方。
NSString *path = [self pathForFileName:vectorFile.fileName];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfFile:path options:0 error:&error];
if (error) {
NSLog(@"%@", error.localizedDescription);
}
执行此操作并尝试将该文件读入NSData
时,出现以下错误:
malloc: *** mach_vm_map(size=1005060096) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
The file “test.tar.gz” couldn’t be opened.
我假设这个文件太大了我的iPhone 6无法处理,因为尝试将其加载到NSData
对象中会将其加载到RAM中,这对于一个应用来说太多了系统不会允许它。
如果是这种情况,还有其他方法吗?如何在iOS上解压缩这样的大文件?