CocoaDevのメーリングリストを追っていたらたまたま NSDataCategory というキーワードを見つけた。聞いた事が無いクラスだと思いリファレンスを調べてみてもみつからない。ネットでしらべると CocoaDev で紹介されていた独自のライブラリであることがわかった。
CocoaDev: NSDataCategory(英語)
zlib系ライブラリの操作メソッドを NSData のカテゴリとして追加したもので、このライブラリを使うとNSDataに対して zip や gzip の圧縮・解凍を行うことができる。その他、CRC32やMD5、SHA1の算出なども行える。
以下にヘッダファイルを引用する。
#import@interface NSData (NSDataExtension) // Returns range [start, null byte), or (NSNotFound, 0). - (NSRange) rangeOfNullTerminatedBytesFrom:(int)start; // Canonical Base32 encoding/decoding. + (NSData *) dataWithBase32String:(NSString *)base32; - (NSString *) base32String; // COBS is an encoding that eliminates 0x00. - (NSData *) encodeCOBS; - (NSData *) decodeCOBS; // ZLIB - (NSData *) zlibInflate; - (NSData *) zlibDeflate; // GZIP - (NSData *) gzipInflate; - (NSData *) gzipDeflate; //CRC32 - (unsigned int)crc32; // Hash - (NSData*) md5Digest; - (NSString*) md5DigestString; - (NSData*) sha1Digest; - (NSString*) sha1DigestString; - (NSData*) ripemd160Digest; - (NSString*) ripemd160DigestString; @end
使うには zlib.dylib をリンクさせる必要がある。
これはなかなか便利そう。
日本語でも紹介記事があった。
いー ドット ぷりんとすたっくとれーす: zlibをCocoaの中で使う.