RESTKIT:反序列化 JSON 并非所有关系属性

RESTKIT : deserialize JSON with not all relationship attribute

我试过像这样反序列化 JSON :

{"id":1234, "content": "Hi, This is a message", "dateSaved":"10/04/2015 11:00", "user":{"id":12}}

型号:

class Message: NSManagedObject {
    @NSManaged var content: String
    @NSManaged var dateSaved: NSDate
    @NSManaged var id: NSNumber
    @NSManaged var user: User
}

class User: NSManagedObject {
    @NSManaged var id: NSNumber
    @NSManaged var login: String
    @NSManaged var mobile: String
    @NSManaged var password: String
    @NSManaged var picture: NSData
    @NSManaged var messages: NSSet
}

用户已经保存在iOS数据库中,所以我不需要从服务器发送它的所有数据。问题是 RKRelationshipMappingRKConnectionDescription 似乎都没有为这种作品做:第一个作品是完整的对象,可以直接由 CoreData 操作;第二个只能与标识符一起使用,不能与对象一起使用

我无法将服务器序列化对象的方式更改为 JSON,因为另一个 Android 应用程序使用这种 JSON

有人知道如何解决这个问题吗?

好的,我明白了。我刚刚忘记为 RKRelationshipMapping 设置方法 addAttributeMappingsFromDictionary :

let messageAttributesMapping = [
    "id":  "id",
    "content":  "content",
    "dateSaved":  "dateSaved"
]

extension Message {
    class func mappingResponse(managedObjectStore: RKManagedObjectStore) -> RKMapping {
        let messageMapping = RKEntityMapping(forEntityForName: "Message", inManagedObjectStore: managedObjectStore)

        messageMapping.identificationAttributes = ["id"]
        messageMapping.addAttributeMappingsFromDictionary(messageAttributesMapping)

        let userMapping = RKEntityMapping(forEntityForName: "User", inManagedObjectStore: managedObjectStore)
        userMapping.identificationAttributes = ["id"]
        userMapping.addAttributeMappingsFromDictionary(["id" : "id"])

        messageMapping.addPropertyMapping(RKRelationshipMapping(fromKeyPath: "user", toKeyPath: "user", withMapping: userMapping))

        return messageMapping
    }
}

这个解决方案可以反序列化 JSON,但我仍然想知道我是否应该尝试使用 RKConnectionDescription,它似乎是为我们只有 id 的关系构建的?