私は、データを作成しないios 5アプリケーションを持っています。これは単にREST WebサービスへのGET呼び出しを行い、sqliteデータベースにそれらのレコードを設定します。初期のGETは、ローカルデータベースにレコードが存在しない場合に有効です。しかし、その後の呼び出しでは、最後のGET以降にデータが変更されたレコードのサブセットのみを返します。しかし、起こっているのは、レコードがただちに追加されるだけで、既存のレコードは更新されないということです。RestKit/CoreDataが更新されない - 重複を作成する
私は主キー(またはそうでなければならない)であるIDフィールドを持っています。そのIDが既に存在するレコードが来ると、そのデータを更新します。そのIDが存在しない場合は、挿入されている必要があります。
私のIDフィールドをXCodeのデータモデルの「主キー」として設定する方法がありませんでした。
userMapping.primaryKeyAttribute = @"id";
をしかし、それだけでは本当に何もしていないようでした。私は私のdidFinishLaunchingWIthOptionsの方法でこれをやってみました。
// Load the object model via RestKit
[objectManager loadObjectsAtResourcePath:[@"/synchContacts" appendQueryParams:params] delegate:self];
自動的にすべてを行うようだ:
この
は、実際にGETを実行するために、私の呼び出しです。私はこの時点で、IDが存在するかどうかを確認するロジックを置くべき場所と、そうであれば更新を挿入するかどうかについて何かを失う。