Ios Restkit映射一对多

Ios Restkit映射一对多,ios,core-data,restkit,Ios,Core Data,Restkit,我有这样的映射: RKObjectMapping *pageMapping = [RKEntityMapping mappingForEntityForName:@"Page" inManagedObjectStore:[RKManagedObjectStore defaultStore]]; [pageMapping addAttributeMappingsFromArray:@[ @"rows, columns", @"header", @"size", @"backgroundColor"

我有这样的映射:

RKObjectMapping *pageMapping = [RKEntityMapping mappingForEntityForName:@"Page" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[pageMapping addAttributeMappingsFromArray:@[ @"rows, columns", @"header", @"size", @"backgroundColor" ]];

RKObjectMapping *objectMapping = [RKEntityMapping mappingForEntityForName:@"Object" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[objectMapping addAttributeMappingsFromArray:@[ @"content", @"crop", @"fontName", @"fontSize", @"height", @"width",
 @"paddingLeft", @"paddingTop", @"paddingRight", @"paddingBottom", @"src", @"textColor", @"type", @"url", @"posX", @"posY" ]];

[objectMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"objects" toKeyPath:@"objects" withMapping:pageMapping]];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:pageMapping pathPattern:nil keyPath:@"pages" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager] addResponseDescriptor:responseDescriptor];

[[RKObjectManager sharedManager] getObjectsAtPath:[magazine contentPath]
                                       parameters:nil
                                          success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                              [self sortPageResult];
                                              Page *page = (Page *)[self.pagesFetchedResultController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
                                              NSLog(@"%d", [[page objects] count]);

                                              //[self changeStatusToDownloaded:[magazine magazineID]];
                                              [self.collectionView reloadData];
                                          } failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                              [self displayError];
                                              NSLog(@"Product error: %@", [error localizedDescription]);
                                              [self.collectionView reloadData];
                                          }];
Relationship 'objects' fault on managed object (0x1d8b57a0) <Page: 0x1d8b57a0> (entity: Page; id: 0x1d8b0740 <x-coredata://30A44191-D972-4222-88DF-539C2875F293/Page/p1> ; data: {
backgroundColor = FFFFFF;
columns = 0;
content = nil;
header = 1;
link = nil;
magazine = nil;
margin = 0;
objects = "<relationship fault: 0x1d8aea40 'objects'>";
pageID = nil;
rows = 0;
size = 1;
})
我有一个映射问题。我清楚地映射了“页面”对象,但无法映射“对象”。当我尝试它时,我得到如下结果:

RKObjectMapping *pageMapping = [RKEntityMapping mappingForEntityForName:@"Page" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[pageMapping addAttributeMappingsFromArray:@[ @"rows, columns", @"header", @"size", @"backgroundColor" ]];

RKObjectMapping *objectMapping = [RKEntityMapping mappingForEntityForName:@"Object" inManagedObjectStore:[RKManagedObjectStore defaultStore]];
[objectMapping addAttributeMappingsFromArray:@[ @"content", @"crop", @"fontName", @"fontSize", @"height", @"width",
 @"paddingLeft", @"paddingTop", @"paddingRight", @"paddingBottom", @"src", @"textColor", @"type", @"url", @"posX", @"posY" ]];

[objectMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"objects" toKeyPath:@"objects" withMapping:pageMapping]];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:pageMapping pathPattern:nil keyPath:@"pages" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager] addResponseDescriptor:responseDescriptor];

[[RKObjectManager sharedManager] getObjectsAtPath:[magazine contentPath]
                                       parameters:nil
                                          success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
                                              [self sortPageResult];
                                              Page *page = (Page *)[self.pagesFetchedResultController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
                                              NSLog(@"%d", [[page objects] count]);

                                              //[self changeStatusToDownloaded:[magazine magazineID]];
                                              [self.collectionView reloadData];
                                          } failure:^(RKObjectRequestOperation *operation, NSError *error) {
                                              [self displayError];
                                              NSLog(@"Product error: %@", [error localizedDescription]);
                                              [self.collectionView reloadData];
                                          }];
Relationship 'objects' fault on managed object (0x1d8b57a0) <Page: 0x1d8b57a0> (entity: Page; id: 0x1d8b0740 <x-coredata://30A44191-D972-4222-88DF-539C2875F293/Page/p1> ; data: {
backgroundColor = FFFFFF;
columns = 0;
content = nil;
header = 1;
link = nil;
magazine = nil;
margin = 0;
objects = "<relationship fault: 0x1d8aea40 'objects'>";
pageID = nil;
rows = 0;
size = 1;
})
受管对象(0x1d8b57a0)上的关系“对象”错误(实体:页面;id:0x1d8b0740;数据:{ 背景颜色=FFFFFF; 列=0; 内容=零; 标题=1; 链接=零; 杂志=无; 保证金=0; objects=“”; pageID=nil; 行=0; 尺寸=1; }) 谢谢回复

新进展

我改变了:

[objectMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"objects" toKeyPath:@"objects" withMapping:pageMapping]];
相反:

[pageMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"items" toKeyPath:@"items" withMapping:itemMapping]];

现在映射是正确的,但是映射会导致“对象”实体的重复。只有一个对象在一次又一次地重新生成://

当RESTKIT第一次映射数据时,似乎没有“对象”对象。然后,当我从核心数据中获取它时,我得到的错误就像刚刚将RKRelationshipMapping实例的assignmentPolicy值设置为RKUnionAssignmentPolicy一样。见此帖: