データをローカルに保存したいのですが、どの方法がnsdictionaryまたはplistに優れているのかわかりません。nsdictionaryまたはplistのデータを保存する方が良い方法はありますか?
ありがとうございます!
データをローカルに保存したいのですが、どの方法がnsdictionaryまたはplistに優れているのかわかりません。nsdictionaryまたはplistのデータを保存する方が良い方法はありますか?
ありがとうございます!
おそらく、あなたが求めるのは、どちらが優れているか、plistか、バイナリであるかと思います。 writeToFile:
を使用してNSDictionary
をファイルに保存すると、plistとして保存されます。そういう意味では、両者には差がありません。
ただし、NSDictionary
インスタンスをシリアライズされたNSData
表現に変換し、シリアライズされたデータをバイナリファイルとして保存することもできます。
どちらが優れているのか、理由は何をしたいのかによって異なります。 NSDictionary
をplistファイルに/から変換するAPIは、NSData
へのシリアライズと再構築のAPIよりも使いやすいです。辞書内のすべてがplistのオブジェクト(NSData
、NSDate
、NSNumber
、NSString
、NSArray
、またはNSDictionary
のインスタンス)であれば、あなたのすべてのキーがタイプNSString
である場合は、plistファイルとしてNSDictionary
を格納するだけで動作します。さもなければあなたのwriteToFile:
コールは失敗するでしょう、なぜか、不満足な理由で情報はほとんど提供されません。
したがって、データ構造がplistとして保存されるための要件を満たし、要件を満たさなくなるなど予期できない場合は、plistとして保存する方が便利です。それ以外の場合は、唯一のオプションはNSData
を使用してバイナリのシリアル化とストレージを行うことです。データ構造に非plistオブジェクトを貼り付けることで、誤って壊れることのないコードを作成したい場合は、この後者のオプションを使用することをお勧めします。
パフォーマンス面での違いは何ですか?バイナリは理論的に速いはずです。 –