Restkit无法映射包含点的键

时间:2013-09-24 11:33:00

标签: objective-c restkit

我尝试按照本教程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',而不是直接将其用作键。

有没有人知道解决这个问题的方法? 这是非常有限的。 感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

看起来像RestKit https://github.com/RestKit/RestKit/issues/1532

中的一个漏洞