AlamofireObjectMapper.swift 第 74 行适用于 Playground,但不适用于设备或模拟器

Posted

技术标签:

【中文标题】AlamofireObjectMapper.swift 第 74 行适用于 Playground,但不适用于设备或模拟器【英文标题】:AlamofireObjectMapper.swift line 74 works in Playground but not on device or emulator 【发布时间】:2017-01-06 14:09:04 【问题描述】:

以下如何在 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"
              
              
              ]

【问题讨论】:

【参考方案1】:

问题似乎与 ObjectMapper 库的 2.2.1 和 2.2.2 之间的不兼容问题有关。

这是刚刚打开的相关问题:

https://github.com/tristanhimmelman/AlamofireObjectMapper/issues/179 https://github.com/Hearst-DD/ObjectMapper/issues/722

为了快速修复,您可以使用旧版本 (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

【讨论】:

以上是关于AlamofireObjectMapper.swift 第 74 行适用于 Playground,但不适用于设备或模拟器的主要内容,如果未能解决你的问题,请参考以下文章