2011-06-28 10 views

答えて

5

おそらく、あなたが求めるのは、どちらが優れているか、plistか、バイナリであるかと思います。 writeToFile:を使用してNSDictionaryをファイルに保存すると、plistとして保存されます。そういう意味では、両者には差がありません。

ただし、NSDictionaryインスタンスをシリアライズされたNSData表現に変換し、シリアライズされたデータをバイナリファイルとして保存することもできます。

どちらが優れているのか、理由は何をしたいのかによって異なります。 NSDictionaryをplistファイルに/から変換するAPIは、NSDataへのシリアライズと再構築のAPIよりも使いやすいです。辞書内のすべてがplistのオブジェクト(NSDataNSDateNSNumberNSStringNSArray、またはNSDictionaryのインスタンス)であれば、あなたのすべてのキーがタイプNSStringである場合は、plistファイルとしてNSDictionaryを格納するだけで動作します。さもなければあなたのwriteToFile:コールは失敗するでしょう、なぜか、不満足な理由で情報はほとんど提供されません。

したがって、データ構造がplistとして保存されるための要件を満たし、要件を満たさなくなるなど予期できない場合は、plistとして保存する方が便利です。それ以外の場合は、唯一のオプションはNSDataを使用してバイナリのシリアル化とストレージを行うことです。データ構造に非plistオブジェクトを貼り付けることで、誤って壊れることのないコードを作成したい場合は、この後者のオプションを使用することをお勧めします。

+0

パフォーマンス面での違いは何ですか?バイナリは理論的に速いはずです。 –

関連する問題