解压缩NSData

时间:2011-07-20 02:48:37

标签: iphone compression

我正在压缩文件夹并将zip文件上传到服务器。然后我下载到我的游戏。它被收到NSMutableData。现在我如何解压缩并在游戏中使用它?

我可以下载pngs,plists和pvr.ccz并在游戏中使用它。我想要做的是能够从服务器下载游戏的其他内容。我正在寻找一种方法,我可以压缩所有额外的资源并将其存储在服务器上,然后在需要时下载并解压缩使用它。

如果你能帮我解决这个问题,请告诉我。

由于 AC

2 个答案:

答案 0 :(得分:0)

您可以使用ZipKit来轻松解压缩文件。据我所知(虽然未经测试,但应该进行错误检查),你可以这样做:

ZKDataArchive *archive = [ZKDataArchive archiveWithArchiveData:data];  // 'data' must be NSMutableData, not just NSData
[archive inflateInFolder:folderPath withFolderName:someFolderName usingResourceFork:NO];

我认为你会将其解压缩到Documents文件夹,然后使用它们的绝对路径将它们加载到游戏中。

答案 1 :(得分:0)

我的问题是因为我想将一堆文件(包括TexturePacker文件)压缩在一起,然后将它们下载到游戏中。所以我最终使用了这个名为ZipArchive&的包装器。 SSZipArchive。它使用minizip。我压缩文件并上传它们。然后使用NSURLConnection

下载它们
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

并将它们保存在文档目录下并使用

解压缩
-(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite

现在非常简单,因为它已经弄明白了:)