2016-05-20 3 views
0

APIからJSONレコードを取得し、NSArrayに変換してUITableViewでリロードするSwiftでアプリケーションを開発しています。 NSArrayをCoreDataにマップする必要があります。新しいリクエストをAPIに追加するときに、JSONレスポンスに新しい子が追加されている場合は、その子のみをCoreDataに保存する必要があります。 I.私はCoreDataのNSArrayの値の繰り返しを避けなければならない。Swift:JSON配列を実装するためのCoreDataの重複エントリを避けるにはどうすればよいですか?

「データモデルにユニークな制約を使用しています」と「HyperSyncとDATAStack」という解決策はほとんど見つかりませんでしたが、これはできません。すべてのレコードをチェックするモジュールを実装する必要がありますか?

答えて

1

JSONのオブジェクトに識別情報がある場合(例: [ { "id" : 4, ...} ...]の場合、CoreDataオブジェクトにこれらの「id」値を格納し、新しいものを作成する前にマッピング中に既存のものをフェッチしてください。

JSONオブジェクトに識別フィールドまたは固有のフィールドがない場合、タスクは解決できません。

など。 RestKitフレームワークは自動的にそれをすべて行い、マッピングとidentificationAttributesだけを設定する必要があります。

+0

ポッドをインストールせずにやりたいです。あなたが言及したように、私は既存のものだけを取り出す必要があります、どうすればいいですか? RESTKitのチュートリアルを教えてください。ありがとう。 –

+0

RestKitはPodです。ここには基本的な例があります:https://github.com/RestKit/RestKit – DisableR

+0

あなた自身でやりたいことがあり、JSONオブジェクトの一意のIDを持っている場合は、この属性をいくつかのあなたのManagedObjectの "externalId"プロパティ。次に、新しいオブジェクトを作成する前に、既存のオブジェクトを条件 "externalId =%@"、objectJson [@ "id"]で取得します。既存のオブジェクトがない場合は、新しいオブジェクトを作成します。存在しない場合は、既存のオブジェクトを更新します。 – DisableR

関連する問題