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如下:
- 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
以下内容如何在 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如下:
- 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