Object Mapper类用于在Core Data中存储数据

Usm*_*ved 6 core-data ios swift objectmapper

让我从问题的背景开始.

我有一个Person用于解析JSON响应的类

class Person: NSObject, Mappable {

        var ID : String?
        var firstName : String?
        var lastName : String?

        convenience required init?(map: Map) {
                self.init()

            }

            func mapping(map: Map) {
                patientsCount <- map["patientsCount"]
                status <- map["status"]
                message <- map["Message"]
                patientSearchArray <- map["patientsList_JSON"]
            }
    }
Run Code Online (Sandbox Code Playgroud)

而在另一方面,我有另一个PersonMO用于保存记录的类名CoreData

        @objc(Event)
        class PersonMO: NSManagedObject {

        @NSManaged var ID : String?
        @NSManaged var firstName : String?
        @NSManaged var lastName : String?

    }
Run Code Online (Sandbox Code Playgroud)

现在谈到要点.我面临的问题是我必须为一个目的创建两个不同的类.就像当JSON谈到形式Server Side那么我必须把它解析为Person类,然后我想的是保存PersonCore Data了,我要转换Person类对象PersonMO类对象.这似乎是一种不好的做法.有没有办法只使用一个类Person将用于解析JSON,同时我想使用Person该类在Core Data中存储数据.

Ani*_*ese 0

像这样的单个Person类应该足够了,可以满足这两种情况。

class Person: NSManagedObject, Mappable { 

@NSManaged var ID : String?
@NSManaged var firstName : String?
@NSManaged var lastName : String?

convenience required init?(map: Map) {
    self.init()

}

func mapping(map: Map) {
    patientsCount <- map["patientsCount"]
    status <- map["status"]
    message <- map["Message"]
    patientSearchArray <- map["patientsList_JSON"]
}
}
Run Code Online (Sandbox Code Playgroud)

NSManagedObject是 的子类NSObject,因此它可以像具有 Mappable 的 Person 类一样使用。@NSManaged表示它由 CoreData 管理,但仍然可以像普通变量一样使用。