Swift ObjectMapper如何映射嵌套实体中的值
在此场景中,使用 这里C是具有行地址和端口的实体。现在使用ObjectMapper如何设置端口实体C的值 我已经编写了这个嵌套的代码部分Swift ObjectMapper如何映射嵌套实体中的值,swift,core-data,objectmapper,Swift,Core Data,Objectmapper,在此场景中,使用 这里C是具有行地址和端口的实体。现在使用ObjectMapper如何设置端口实体C的值 我已经编写了这个嵌套的代码部分 class a: NSManagedObject, Mappable { @NSManaged var port: NSNumber? @NSManaged var b: NSSet? private var barr: [b]? required public init?(map: Map) { let ctx = DbHelper .getC
class a: NSManagedObject, Mappable {
@NSManaged var port: NSNumber?
@NSManaged var b: NSSet?
private var barr: [b]?
required public init?(map: Map) {
let ctx = DbHelper .getContext()
let entity = NSEntityDescription.entity(forEntityName: "a", in: ctx)
super.init(entity: entity!, insertInto: ctx)
mapping(map: map)
}
public func mapping(map: Map) {
port <- map["port"]
barr <- map["b"]
if barr != nil
{
b = NSSet(array: barr!)
barr = nil
}
}
}
a类:NSManagedObject,可映射{
@NSVAR管理端口:NSNumber?
@NSB:NSSet?
私人巴尔:[b]?
必需的公共初始化?(映射:映射){
设ctx=DbHelper.getContext()
让entity=NSEntityDescription.entity(名为“a”,in:ctx)
super.init(实体:entity!,insertInto:ctx)
映射(映射:映射)
}
公共函数映射(映射:映射){
端口首先,您的json无效。您在端口:“端口:”2“,之后忘记了一个”
这里是解决办法
模型结构:
class Port : Mappable {
var port:String?
var b: [C]?
required init?(map: Map) {
}
func mapping(map: Map) {
port <- map["port"]
b <- map["b"]
}
}
class C : Mappable {
var c:[Address]?
required init?(map: Map) {
}
func mapping(map: Map) {
c <- map["c"]
}
}
class Address : Mappable {
var address:Int?
required init?(map: Map) {
}
func mapping(map: Map) {
address <- map["address"]
}
}
如果你在项目的开始阶段,你应该使用codabable
。网上有很多教程。搜索Alamofire+Codable,你可以非常轻松地处理请求+解析
提示:您的命名非常混乱。看看这篇文章,这对模型结构也有帮助。到目前为止您累了什么?@AhmadF编辑了这个问题,添加了我当前实现的内容。感谢您的回答,但我想知道如何通过在类C中创建对象端口来将端口值从类端口存储到类C。可以吗你能帮助我如何使用codable并在核心数据中存储自定义对象吗?不,我不能。当你有特定问题时,我可以帮助你。有很多关于核心数据的教程:第一次点击谷歌。搜索核心数据codable swift
我找到了我正在谷歌上查看关于coredata codable的信息,但对于这个特定问题,我将如何通过在类C中创建对象端口,我将端口值从类Port存储到类C。
class Port : Mappable {
var port:String?
var b: [C]?
required init?(map: Map) {
}
func mapping(map: Map) {
port <- map["port"]
b <- map["b"]
}
}
class C : Mappable {
var c:[Address]?
required init?(map: Map) {
}
func mapping(map: Map) {
c <- map["c"]
}
}
class Address : Mappable {
var address:Int?
required init?(map: Map) {
}
func mapping(map: Map) {
address <- map["address"]
}
}
if let json = "yourJson" {
if let res:[Port] = Mapper<Port>().mapArray(JSONArray: json as! [[String : Any]]) {
//your port objects
}
}
let url = "https://api.myjson.com/bins/iw6vj" //your json
Alamofire.request(url).responseJSON { (data) in
if let json = data.result.value {
if let res:[Port] = Mapper<Port>().mapArray(JSONArray: json as! [[String : Any]]) {
//your port objects
}
}
}