AlamofireObjectMapper.swift 第 74 行在 Playground 中有效,但在设备或模拟器中无效

AlamofireObjectMapper.swift line 74 works in Playground but not on device or emulator

以下内容如何在 Xcode Playground 中运行,而不是在 运行 设备或​​模拟器上运行。

Alamofire 一切顺利返回。我可以 .responseJSON 没问题。

但是使用 .responseObject 它失败了 here in line 74 SIGABRT

并且控制台显示:Message from debugger: Terminated due to signal 9

同样,这是在 Playground 使用相同的 类 和 Alamofire.request

    Alamofire.request(
        url_planday_employees,
        method: .get,
        headers: headers_employees).responseObject { (response: DataResponse<Items>) in
            // Error
            for item in (userResponse?.items)! {
                if let user = item.user {
                    print("Result in... user")
                    print("Name:" + user.name! )
                }
            }
    }

类:

class User: Mappable {
    var name: String?
    var id: Int?

    required init?(map: Map){}

    func mapping(map: Map) {
        name <- map["name"]
        id <- map["id"]
    }
}

class Item: Mappable {
    var user: User?

    required init?(map: Map){}

    func mapping(map: Map) {
        user <- map["item"]
    }
}

class Items: Mappable {
    var items: [Item]?

    required init?(map: Map){}

    func mapping(map: Map) {
        items <- map["items"]
    }
}

JSON:

{
    "items": [
              {
              "item": {
              "id": 1,
              "name": "Anders And"
              }
              },
              {
              "item": {
              "id": 2,
              "name": "Andersine"
              }
              }
              ]
}

看起来问题是关于 ObjectMapper 库的 2.2.1 和 2.2.2 之间的不兼容问题。

前段时间打开的相关issues如下:

为了快速修复,您可以使用旧版本 (2.2.1):

至于迦太基,这里是如何完成的:

github "Alamofire/Alamofire" ~> 4.3.0
github "tristanhimmelman/AlamofireObjectMapper" ~> 4.0.1
github "Hearst-DD/ObjectMapper" == 2.2.1

更新

从版本 2.2.3 开始,问题似乎已得到解决:

github "Hearst-DD/ObjectMapper" ~> 2.2.3