1

我正在使用 Restkit 构建一个应用程序以与 Web 服务同步。第一个 loadObjectsAtResourcePath 调用正常工作,但随后每个附加调用都会创建一个新的所有 NULL 行。典型的 JSON 响应是:

[{"item":{"created_at":"2012-04-19T19:42:44Z","id":4,"json_event_id":null,"name":"Biz Cards","theme_id":null,"updated_at":"2012-04-19T19:42:44Z","url":"","user_id":3}},{"item":{"created_at":"2012-04-20T19:37:33Z","id":5,"json_event_id":null,"name":"Hummus","theme_id":null,"updated_at":"2012-04-20T19:37:33Z","url":"","user_id":3}}]

第一次调用 loadObjectsAtResourcePath 时,我正确获取了在核心数据中创建的两个对象。下次我调用它时,我在 Sqlite 中获得了一个额外的行,其中包含一个新的 PK 和所有 NULL。每个后续调用都会创建一个新的 NULL 行,其中 PK 递增。

这是我的映射:

RKManagedObjectMapping *itemsMapping = [RKManagedObjectMapping mappingForClass:[Items class] inManagedObjectStore:objectManager.objectStore];
itemsMapping.primaryKeyAttribute = @"itemID";
[itemsMapping mapKeyPathsToAttributes:@"created_at", @"createdAt",
 @"id", @"itemID",
 @"json_event_id", @"json_event_id",
 @"name", @"name",
 @"theme_id", @"theme_id",
 @"updated_at", @"updatedAt",
 @"url", @"url",
 @"user_id", @"user_id", nil];

这是我对网络服务的调用:

RKObjectManager *objectManager = [RKObjectManager sharedManager];
[objectManager loadObjectsAtResourcePath:@"/items" delegate:self];

任何有关为什么创建这些额外行的帮助将不胜感激!

4

0 回答 0