Core data 映射嵌套数组的Rest工具包实体

Core data 映射嵌套数组的Rest工具包实体,core-data,restkit,Core Data,Restkit,嗨,我有一个JSON,格式如下: { "entityList": [     {      "type": "Author", "code" : "XYZ"        "Books": [        {          "id": 10, "name": "book1"          "publisher": {            "code": "ABC"             }        }      ],    } ] } 这些是实体 @int

嗨,我有一个JSON,格式如下:

{
"entityList": [
    {
     "type": "Author",
     "code" : "XYZ"
       "Books": [
       {
         "id": 10,
    "name": "book1"
         "publisher": {
           "code": "ABC"
            }
       }
     ],
   }
]
}
这些是实体

@interface Author :NSManagedObject

@property (nonatomic, retain) NSString * type;
@property (nonatomic, retain) NSString * code;
@property (nonatomic, retain) NSArray* Books;

@end

@interface Book :NSManagedObject

@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Publisher* publisher;

@end


@interface Publisher :NSManagedObject

@property (nonatomic, retain) NSString * code;

@end
这是地图

 RKEntityMapping* Authormapping = [RKEntityMapping mappingForEntityForName:@"Author" inManagedObjectStore:[RKObjectManager sharedManager].managedObjectStore];

    // setup the identification Attribute
    Authormapping.identificationAttributes = @[@"code"];
    // set up the attribute mapping

    [Authormapping addAttributeMappingsFromDictionary:@{@"code":@"code",@"Books":@"Books"
}];

RKEntityMapping* Bookmapping = [RKEntityMapping mappingForEntityForName:@"Book" inManagedObjectStore:[RKObjectManager sharedManager].managedObjectStore];
Bookmapping.identificationAttributes = @[@"id"];
    // set up the attribute mapping

    [Bookmapping addAttributeMappingsFromDictionary:@{@"id":@"id"
[l_mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"publisher"
                                                                              toKeyPath:@"publisher"                                        withMapping:[Publisher getMappingForRelationship]]];
这只是包含一系列字典的书籍,我不知道如何使NsArray包含书籍实体的对象。非常感谢你的帮助

@wain:当我在核心数据中建立关系时,类就变成了

@interface Author :NSManagedObject

@property (nonatomic, retain) NSString * type;
@property (nonatomic, retain) NSString * code;
@property (nonatomic, retain) Book* Books;

@end

然后我使用关系映射来映射地图册。但那时它只会是一本书。我不知道如何将书籍设置为NSSet*/NSArray*,并在核心数据中将其声明为与作者的关系。我不知道如何设置映射。如果不是太麻烦的话,你能给我一个代码示例吗。非常感谢。

很抱歉没有尽快回复。韦恩的解决方案是正确的。我丢失链接的原因是因为svn问题,在我的旧文件中仍然显示,因此所有核心数据生成的方法和NSSet都丢失了。对于刚接触RestKit/core数据并遇到此问题的人。如果有要映射的核心数据实体的对象嵌套数组,请创建“一对多”关系。请确保重新生成类。最好是删除旧的

为什么
NSArray
?在核心数据中,您应该使用关系,因此它应该是
NSSet
。然后只需使用
RKRelationshipMapping
。因此,这应该是@property(非原子,保留)NSSet*Books,并且映射将是[Authormapping addPropertyMapping:[RKrelationshipMappingRelationshipMappingFromKeyPath:@“Books”tokePath:@“Books”withMapping:[Book getMapping]];我说得对吗?当我这样做时,我得到了实体“Author”的NSManagedObject不支持-mutableSetValueForKey:属性“Books”。顺便说一句,Books是Author的属性。您是否创建了关系并重新生成了托管对象子类?是的,这填充了所有图书的表格。但是我如何引用这些图书实体from作者实体?