0

アーカイブ後にファイルに書き込まれる辞書があります[NSKeyedArchiver archivedDataWithRootObject:dictionary]。ファイルの内容を取得し、アーカイブされたデータをマルチピア経由でピア デバイスに転送します。次に、ピア デバイスで、を使用してデータのアーカイブを解除しています[NSKeyedUnarchiver unarchiveObjectWithData:data]。ただし、データは存在しますが、アーカイブ解除中に nil を返します。

ファイル内のコンテンツが巨大であると思われます。NSkeyedArchiver/に代わるものはありますNSKeyedUnarchiverか?

コード: アーカイブ:

[[NSKeyedArchiver archivedDataWithRootObject:dictionary] writeToFile:fileAtPath options:NSDataWritingAtomic error:&error];

転送:

[NSData dataWithContentsOfFile:fileAtPath] ;

アーカイブ解除:

[NSKeyedUnarchiver unarchiveObjectWithData:data];
4

1 に答える 1

0

以下のようなデータを書いてみてください。

 [data writeToFile:filePath atomically:NO];

ここでは、アーカイブされたデータdataを意味します。[NSKeyedArchiver archivedDataWithRootObject:dictionary]

それ以外の場合は、アーカイブおよび非アーカイブの方法で問題ありません。

これが役立つことを願っています:)

于 2016-05-13T10:49:33.563 に答える