Compress/Decompress NSString in objective-c (iphone) using GZIP or deflate

Posted by Steven on Stack Overflow See other posts from Stack Overflow or by Steven
Published on 2010-06-10T15:34:47Z Indexed on 2010/06/10 15:52 UTC
Read the original article Hit count: 1396

Filed under:
|
|
|

Hi,

I have a web-service running on Windows Azure which returns JSON that I consume in my iPhone app.

Unfortunately, Windows Azure doesn't seem to support the compression of dynamic responses yet (long story) so I decided to get around it by returning an uncompressed JSON package, which contains a compressed (using GZIP) string.

e.g

{"Error":null,"IsCompressed":true,"Success":true,"Value":"vWsAAB+LCAAAAAAAB..etc.."}

... where value is the compressed string of a complex object represented in JSON.

This was really easy to implement on the server, but for the life of me I can't figure out how to decompress a gzipped NSString into an uncompressed NSString, all the examples I can find for zlib etc are dealing with files etc.

Can anyone give me any clues on how to do this? (I'd also be happy for a solution that used deflate as I could change the server-side implementation to use deflate too).

Thanks!!

Steven

Edit 1: Aaah, I see that ASIHTTPRequest is using the following function in it's source code:

//uncompress gzipped data with zlib
+ (NSData *)uncompressZippedData:(NSData*)compressedData;

... and I'm aware that I can convert NSString to NSData, so I'll see if this leads me anywhere!

© Stack Overflow or respective owner

Related posts about iphone

Related posts about objective-c