Ios8 在iOS 8中解压缩.gz文件

Ios8 在iOS 8中解压缩.gz文件,ios8,gzip,Ios8,Gzip,我有一个应用程序,其中我解压缩了一个.gz文件,它在iOS 7上运行良好,当我在iOS 8上尝试同样的操作时,我在解压缩它时遇到了问题,zlib.h的gzopen总是为零。代码如下: 添加错误检查并使用strerror().NSLog(@“错误为:%s”,strerror(errno))报告错误;错误是:没有这样的进程,是什么函数导致了这个错误?gzFile file=gzopen([zippedDBPath UTF8String],“rb”);如果我试图打印gzfile对象,它返回的nilj

我有一个应用程序,其中我解压缩了一个.gz文件,它在iOS 7上运行良好,当我在iOS 8上尝试同样的操作时,我在解压缩它时遇到了问题,zlib.h的gzopen总是为零。代码如下:



添加错误检查并使用
strerror()
.NSLog(@“错误为:%s”,strerror(errno))报告错误;错误是:没有这样的进程,是什么函数导致了这个错误?gzFile file=gzopen([zippedDBPath UTF8String],“rb”);如果我试图打印gzfile对象,它返回的niljust已验证,记录strerror(errno)给了我,没有这样的过程。
(void)unzipFileCustom
{
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* dPath = [paths objectAtIndex:0];
NSString* zippedDBPath = [dPath stringByAppendingPathComponent:@"test.sqlite.gz"] ;
NSString *unzippedDBPath = [dPath stringByAppendingPathComponent:@"test.sqlite"];

//gzfile is always nil
gzFile file = gzopen([zippedDBPath UTF8String], "rb");
FILE *dest = fopen([unzippedDBPath UTF8String], "w");

unsigned char buffer[CHUNK];
int uncompressedLength;

while ((uncompressedLength = gzread(file, buffer, CHUNK)) ) {
    // got data out of our file

    if(fwrite(buffer, 1, uncompressedLength, dest) != uncompressedLength || ferror(dest)) {
       NSLog(@"error writing data");
    }
}
fclose(dest);
gzclose(file);
NSLog(@"Finished unzipping database");
}