让我从问题的背景开始。
我有一个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"]
}
}
在另一方面,我有另一个类名PersonMO
,用于保存CoreData
@objc(Event)
class PersonMO: NSManagedObject {
@NSManaged var ID : String?
@NSManaged var firstName : String?
@NSManaged var lastName : String?
}
现在谈到要点。我面临的问题是我必须为一个目的创建两个不同的类。就像JSON
来自Server Side
时,我必须将其解析为Person
类,然后我想将Person
保存到Core Data
中,因为我有将Person
类对象转换为PersonMO
类对象。这似乎是一种不好的做法。
是否有任何方法只使用一个类Person
将用于解析JSON
,同时我想使用该Person
类将数据存储在Core Data中。
答案 0 :(得分: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"]
}
}
NSManagedObject
是NSObject
的子类,因此可以像使用Mappable的Person类一样使用它。 @NSManaged
表示它由CoreData管理,仍然可以像普通变量一样使用。