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