9

最近、NSKeyedArchiver と NSKeyedUnarchiver について学んでいます。配列をアーカイブするには 3 つの方法があることがわかり、その違いを理解しようとしています。

1.使い方archiveRootObject:toFile:

    [NSKeyedArchiver archiveRootObject:testArray toFile:filePath];

2.ファイルからデータを取得しarchivedDataWithRootObject:て書き込む

    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
    [data writeToFile:filePath atomically:YES];

3.encodeObject を使用してデータを取得する

    NSMutableData *data = [NSMutableData data];
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
    [archiver encodeObject:testArray forKey:@"testArray"];
    [archiver finishEncoding];
    [data writeToFile:path atomically:YES];

テスト後、上記のすべての方法が正常に機能し、同じコンテンツをファイルに書き込むことがわかりました。

Q1: 上記のすべての方法との違いは何ですか?

Q2: NSData を第 3 の方法で使用できますか?

4

1 に答える 1