2

CoreData で RestKit .20 を使用しています。RestKit が JSON API を正常に呼び出し、CoreData モデルへの応答を問題なく保存しています。

私の質問は、応答にないマッピング時にデフォルト値を設定するにはどうすればよいですか?

私の状況では、アラートのリストをアラート受信ボックスにダウンロードしています。ローカル デバイスで読み取られたアラートを表示する必要があります。エンティティ モデルに AlertRead (ブール値) と呼ばれる CoreData 属性があります。これは、ユーザーがアラートを 1=read としてマークすると更新されます。

私の質問は、データが取得されてマップされるときに、属性のデフォルト値を 0=unread に設定する方法です。

xcdatamodeld ファイルでデフォルト値を設定しようとしましたが、うまくいきませんでした。RestKit は、マッピング時に値を Nil に設定しているようです。

明確化の 1 つのポイント..データの更新がローカル データベースの現在のデータを上書きするため、API の値に属性をマッピングしてこの属性を設定したくないと思います。

マッピングの現在のコード。

RKEntityMapping* alertMapping = [RKEntityMapping mappingForEntityForName:@"AlertMessage" inManagedObjectStore:_managedObjectStore];
    [alertMapping addAttributeMappingsFromDictionary:@{
     @"alertSubject": @"subject",
     @"alertDetailMessage": @"detailMessage",
     @"id": @"alertId",
     }];   

提案をありがとう。G

4

1 に答える 1

0

KVC 検証( RestKitが頻繁に使用する) を使用して、RestKit からの受信データを検証し、適切でない場合は更新を拒否することを検討してください。これは、 で設定されたデフォルト値と組み合わせて使用​​する必要がありますxcdatamodel

于 2013-09-04T20:42:50.120 に答える