【发布时间】:2016-06-10 15:38:30
【问题描述】:
我没有找到正确的映射并获得许多记录。
实体只有两个属性 nid (Integer 16) 和 body (String)。
json(由 Drupal Webservice 创建,只是其中的一部分)就像
[{
"nid":[{"value":"4"}],
"body":[{"value":"<p>test test test<\/p> \r\n","format":"basic_html","summary":""}]
}]
还有我的代码
let mapping = RKEntityMapping(forEntityForName: "Content", inManagedObjectStore: manager.managedObjectStore)
mapping.identificationAttributes = ["nid"]
let nidMapping = RKEntityMapping(forEntityForName: "Content", inManagedObjectStore: manager.managedObjectStore)
nidMapping.addAttributeMappingsFromDictionary([
"value" : "nid"
])
let bodyMapping = RKEntityMapping(forEntityForName: "Content", inManagedObjectStore: manager.managedObjectStore)
bodyMapping.addAttributeMappingsFromDictionary([
"value" : "body"
])
mapping.addPropertyMapping(RKRelationshipMapping(fromKeyPath: "nid", toKeyPath: "nid", withMapping: nidMapping))
mapping.addPropertyMapping(RKRelationshipMapping(fromKeyPath: "body", toKeyPath: "body", withMapping: bodyMapping))
let responseDescriptor = RKResponseDescriptor(
mapping: mapping,
method: RKRequestMethod.GET,
pathPattern: "",
keyPath: "",
statusCodes: NSIndexSet(index: 200)
)
我得到 3 个 nsmanagedobjects 而不是 1 个:
nid nil, body nil
nid 0, body <p>test test test</p>
nid 4, body nil
谢谢!
【问题讨论】:
-
显示实体。 JSON 很讨厌。
-
json 来自 drupal。我在帖子中添加了实体的属性类型。谢谢
-
所以你有没有关系的普通值,但你正在使用关系映射?您需要自定义值转换器,而不是关系映射。
标签: ios swift core-data restkit