我正在使用 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];
任何有关为什么创建这些额外行的帮助将不胜感激!