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