1

我尝试按照尚未完成的本教程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”,而不是直接使用它作为键。

有谁知道解决这个问题的方法?这是相当有限的。感谢您的帮助:)

4

1 回答 1

0

看起来像 RestKit 中的一个开放错误https://github.com/RestKit/RestKit/issues/1532

于 2013-11-29T05:12:20.687 回答