我尝试按照本教程RKGist Tutorial进行操作,但尚未完成。我设法正确映射了用户,但我的文件有问题。
json是这样的(而'''代表遗漏的东西):
[
{
"url": "gist.gisthub.com",
"id": "11111",
...
"files": {
"gistfile1.phtml": {
"filename": "gistfile1.phtml",
"raw_url": "some_url"
"size": 126
...
}
"file2.test": {
"filename": "file2.test",
"raw_url": "some_url"
"size": 126
...
}
},
"user": {
...
},
}
]
我的文件对象如下所示。
@interface RKGFile : NSManagedObject
@property (nonatomic, retain) NSString * filename;
@property (nonatomic, retain) id rawURL;
@property (nonatomic, retain) NSNumber * size;
@property (nonatomic, retain) RKGGist *gist;
@end
我的映射(只有文件的部分,其余的工作)
RKEntityMapping* fileMapping = [RKEntityMapping mappingForEntityForName:@"File" inManagedObjectStore:managedObjectStore];
fileMapping.forceCollectionMapping = YES;
// Define nested attribute
[fileMapping addAttributeMappingFromKeyOfRepresentationToAttribute:@"filename"];
[fileMapping addAttributeMappingsFromDictionary:@{
@"(filename).raw_url": @"rawURL",
@"(filename).size": @"size"
}];
[gistMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"files" toKeyPath:@"files" withMapping:fileMapping]];
此映射正确获取文件名,但嵌套属性例如'(filename).raw_url'根本不匹配,size和rawURL都是nil。
据我所知,这类似于文档Dynamic Nested Attributes中的用例,但不知何故只有动态属性(文件名)被映射,而不是嵌套属性。
问题是键“gistfile1.phtml”包含一个点,使得映射在'gistfile1'中查找嵌套对象'phtml',而不是直接将其用作键。
有没有人知道解决这个问题的方法? 这是非常有限的。 感谢您的帮助:)