我尝试按照尚未完成的本教程RKGist 教程进行操作。我设法正确映射用户,但文件有问题。
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": {
...
},
}
]
我的 File 对象看起来像这样。
@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' 根本不匹配,大小和 rawURL 都始终为零。
据我所知,这类似于文档动态嵌套属性中的用例,但不知何故,只有动态属性(文件名)被映射,而不是嵌套属性。
问题是键“gistfile1.phtml”包含一个点,它使映射在“gistfile1”中查找嵌套对象“phtml”,而不是直接使用它作为键。
有谁知道解决这个问题的方法?这是相当有限的。感谢您的帮助:)