ページ

2009年10月12日月曜日

Cocoa で zip, gzip を扱うライブラリ - NSDataCategory

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

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の中で使う.