[英]When parsing a JSON response: fatal error: array cannot be bridged from Objective-C
I receive the runtime error: fatal error: array cannot be bridged from Objective-C 我收到运行时错误:致命错误:无法从Objective-C桥接数组
My code is the following: 我的代码如下:
func postCheckUserPhonenumbers(phonenumbers:[String], completionHandler: (([AnyObject?], AnyObject?) -> Void)) {
let urlString = Constant.apiUrl().stringByAppendingFormat(Constant.apiPostCheckUserPhonenumbers)
let phoneNumbersDictionary = phonenumbers.map({ ["number": $0] })
let inputJSON = try? NSJSONSerialization.dataWithJSONObject(phoneNumbersDictionary, options: [])
let request = NSMutableURLRequest(URL: NSURL(string: urlString)!)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
request.HTTPBody = inputJSON
Alamofire.request(request).validate().responseJSON(completionHandler: {response in
if response.result.isSuccess{
if let value = response.result.value {
let json = JSON(value)
let jsonString = json.rawString()
if let users:Array<User> = Mapper<User>().mapArray(jsonString) {
completionHandler(users, nil)
} else {
completionHandler([nil], nil)
}
}
}
if response.result.isFailure{
let message = ApiMessage()
message.message = "No users found"
completionHandler([nil],message)
}
})
}
This is what my debugger looks like: 这是我的调试器的外观:
Got it: 得到它了:
func postCheckUserPhonenumbers(phonenumbers:[String], completionHandler: (([AnyObject]?, AnyObject?) -> Void)) {
let urlString = Constant.apiUrl().stringByAppendingFormat(Constant.apiPostCheckUserPhonenumbers)
let phoneNumbersDictionary = phonenumbers.map({ ["number": $0] })
let inputJSON = try? NSJSONSerialization.dataWithJSONObject(phoneNumbersDictionary, options: [])
let request = NSMutableURLRequest(URL: NSURL(string: urlString)!)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
request.HTTPBody = inputJSON
Alamofire.request(request).validate().responseJSON(completionHandler: {response in
if response.result.isSuccess{
if let value = response.result.value {
let json = JSON(value)
let jsonString = json.rawString()
if let users:Array<User> = Mapper<User>().mapArray(jsonString) {
completionHandler(users, nil)
} else {
completionHandler(nil, nil)
}
}
}
if response.result.isFailure{
let message = ApiMessage()
message.message = "No users found"
completionHandler(nil,message)
}
})
}
Can you spot the difference? 您看得出来差别吗? Do a control + F and then search for '?'
做一个控制+ F,然后搜索“?”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.