iOSデータストアクラス-NSdata

1172 ワード

NSData(データストレージ関連)
  • 親はNSObject
  • archiveRootObject:toFile:メソッドを使用して、1つのオブジェクトを1つのファイルに直接書き込むことができますが、複数のオブジェクトを同じファイルに書き込む場合は、NSDataを使用してアーカイブオブジェクト
  • を作成する必要があります.
  • NSDataは、その後ファイルに書き込み、またはディスクから読み込まれたファイルの内容を格納するために、いくつかのデータに一時的な記憶領域を提供することができる.[NSMutableData data]を使用して可変データ空間
  • を作成できます.
    NSDataのアーカイブとリカバリ
  • アーカイブ(符号化)
  • //          
    NSMutableData *data = [NSMutableData data];
    
    //          NSKeyedArchiver  
    NSKeyedArchiver *archiver = [[[NSKeyedArchiver alloc] initForWritingWithMutableData:data] autorelease];
    
    //       ,          NSMutableData 
    [archiver encodeObject:person1 forKey:@"person1"];
    [archiver encodeObject:person2 forKey:@"person2"];
    
    //     (         )
    [archiver finishEncoding];
    
  • 復元(復号)
  • //         
    NSData *data = [NSData dataWithContentsOfFile:path];
    
    //     ,     NSKeyedUnarchiver  
    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
    Person *person1 = [unarchiver decodeObjectForKey:@"person1"];
    Person *person2 = [unarchiver decodeObjectForKey:@"person2"];
    
    //     
    [unarchiver finishDecoding];