【发布时间】:2018-12-23 10:56:18
【问题描述】:
以前它与Swift 3 配合得很好,但是当我切换到Swift 4 时,无法找到类型为JSON(SwiftyJson Library) 的补全问题
static func getRoster(information: [String: String], completion:@escaping ([Player],JSON,Paging?,WSResponse,NSError?) -> Void){
Alamofire.request(NetWorkingConstants.baseURL+NetWorkingConstants.Team.get_all_roster, method: .post, parameters: information, encoding: JSONEncoding.default, headers:StarsLeagueUser.sharedInstance.getDefaultHeaders()).responseJSON { (response) in
switch response.result {
case .success(let value):
let json = JSON(value)
let wsResponse = WSResponse(code: json["response_code"].stringValue, message: json["message"].stringValue)
if wsResponse.code == ServerCode.success{
print("Success")
}else if wsResponse.code == ServerCode.unauthorized{
print("Session Expire")
}
case .failure(let error):
print("Network Error")
let wsResponse = WSResponse(code: "1000", message: "Network Error")
completion([],nil,nil,wsResponse,error as NSError?)//Here is error - Nil is not compatible with expected argument type 'JSON'
print("GetRoster")
}
}
}
【问题讨论】:
-
因为您编写的代码期望服务器响应为 json,如果响应不是 json,您将收到错误
标签: json swift completionhandler