iPhoneアプリ開発の虎の巻
HOME > NSData

NSData

NSDataはバイト列のデータ(バイナリデータ)を扱うときに使用します。

NSDataのクラス階層

NSObject ↑ NSData

NSData生成

// NSDictionaryからNSDataを生成する例
NSDictionary *dic =[NSDictionary dictionaryWithObject:@"hoge" forKey:@"KEY"];
NSData *d = [NSKeyedArchiver archivedDataWithRootObject:dic];

//ファイル(hoge.png)からNSDataを生成する例
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"hoge" ofType:@"png"];
NSData *d = [[NSData alloc] initWithContentsOfFile:path];

NSData型に変換するには、上記例のようにNSKeyedArchiverクラスを使用します。
また、独自クラスなどをNSData型に変換するには、NSCodingプロトコルを実装している必要があります。
(NSDictionaryクラスや NSArrayクラスなどのクラスは既にNSCodingプロトコルを実装しているためNSData型に変換ができるのです。)

NSDataのメソッド

【NSDataの主要メソッド】
メソッド名 説明
- (NSUInteger)length サイズを取得する
(例)int i = [d length];

主要なメソッドのみ掲載しています。
 上記「NSDataのクラス階層」にあるクラスのメソッドも使用できます。

NSData例文

// NSDictionary型→NSData型→NSDictionary型

// NSDictionaryオブジェクトを生成
NSDictionary *dic =[NSDictionary dictionaryWithObject:@"hoge" forKey:@"KEY"];

// 生成したオブジェクトをNSData型に変換
NSData *d = [NSKeyedArchiver archivedDataWithRootObject:dic];

// NSData型オブジェクトをNSDictionary型に変換
NSDictionary *reverse = [NSKeyedUnarchiver unarchiveObjectWithData:d];
totop