gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:22 24 4
gpt4 key购买 nike

让我们从我的问题的背景开始。

我有一个 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 类,然后我想保存那个 PersonCore Data 因为我必须将 Person 类对象转换为 PersonMO 类对象。这似乎是一种不好的做法。有没有办法只使用一个类 Person 将用于解析 JSON 并且同时我想使用那个 Person 类来将数据存储在核心数据中。

最佳答案

像这样的单个 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"]
}
}

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

关于ios - Object Mapper 类用于在 Core Data 中存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com