1

クラウドにバックアップできるように、iOS アプリのコア データベース全体を JSON にシリアル化する方法を考えています。ユーザーがJSON文字列を元に戻し、そこからコアデータベース全体を生成する方法を復元したい場合よりも?

出来ますか?何かアドバイス?

ありがとう

4

2 に答える 2

3

もちろん。JSON との間でオブジェクトをシリアライズ/デシリアライズし、JSONをアップロードまたはダウンロードするために簡単に使用できます。 NSJSONSerialization NSURLRequest/Connection

AFNetworking は、JSON シリアライゼーション/デシリアライゼーションが組み込まれている人気のあるネットワーク フレームワークです。私はまだ使用していないので、個人的に保証することはできませんが、非常に機能的に見えます。

NSManagedObject (コア データベース オブジェクト) には関連付けられた があり、これには method があります。これにより、すべてのクラスと属性に対して明示的なコードを記述しなくても、シリアライゼーション/デシリアライゼーション メソッドを簡単に記述できます。 NSEntityDescription - (NSDictionary *)attributesByName

Core Data は私のニーズのほとんどに対して重くて複雑であることがわかり、通常はプロトコルを使用してローカル ストレージとシリアライゼーション/デシリアライゼーションを書き込みます。将来のプロジェクトのために、それも検討するかもしれません。 NSCoding

于 2012-08-29T23:34:14.050 に答える
0

NSJSONSerializationクラスリファレンスをご覧ください。JSONをCoreDataに配置することは間違いなく実行できますが、すべてのデータを適切な場所に配置するカスタム関数が必要です。JSONObjectWithDataJSONファイルを取得してNSDictionaryに配置します。

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://linktojson.com/file.json"]];

NSError *error = nil;

NSDictionary *results = [NSJSONSerialization
                                 JSONObjectWithData:data
                                 options:NSJSONReadingMutableLeaves
                                 error:&error];

そこから、辞書のデータをCoreDataに入れることができます。

逆に言えば、それはおそらく実行可能であり、おそらく最終ステップになるでしょうが、そこに到達することは、おそらく上記で作成dataWithJSONObjectしたNSDictionaryを再構築することに沿ったものになるでしょう。JSONObjectWithData

于 2012-08-29T23:37:41.187 に答える