Swift Alamofire,致命错误:在展开可选值时意外发现nil
我正在开发我的应用程序,它在模拟器上运行良好。当我在我的iphone上尝试时,它因取消抓取错误而崩溃。有什么想法吗?谢谢 } 试试这个:Swift Alamofire,致命错误:在展开可选值时意外发现nil,swift,null,alamofire,Swift,Null,Alamofire,我正在开发我的应用程序,它在模拟器上运行良好。当我在我的iphone上尝试时,它因取消抓取错误而崩溃。有什么想法吗?谢谢 } 试试这个: var url: String = "" func connectServer(url:String,completionHandler: (jsonResponse: JSON) -> ()) { Alamofire.request(.GET, url) .responseJSON { (respons
var url: String = ""
func connectServer(url:String,completionHandler: (jsonResponse: JSON) -> ()) {
Alamofire.request(.GET, url)
.responseJSON { (response) -> Void in
guard response.result.isSuccess else {
print("Error while fetching remote rooms: \(response.result.error)")
completion(nil)
return
}
guard let value = response.result.value as? [String: AnyObject],
completionHandler(jsonResponse: value) else {
print("Malformed data received from fetchAllRooms service")
completion(nil)
return
}
}
}
原因是
response.result.value代码>为nil
。很可能设备上没有可用的localhost
。我猜Alamofire在发生错误时也会返回一个错误对象。先检查一下!您应该始终考虑可选的可能是零的可能性,因此,编写错误处理逻辑来正确地处理这种情况——@ VADEN,您是对的。谢谢你的帮助。我试图打印出错误消息,并说它无法连接到服务器。有什么解决方案可以让我的应用程序在iphone上正常工作吗?我的意思是仍然从localhost获取数据?你的iphone将无法连接到localhost。如果您在同一个网络上,您可能能够获取计算机的ip地址并以这种方式进行。完成(nil)意味着什么?我试过了,但是给了我一个未解析的标识符error,如果让value=response.result.value为,就替换它吧?[String:AnyObject]{completionHandler(jsonResponse:value)}和您的let json=json(response.result.value!)
func loadData(){
let cn = connection()
let url = "http://localhost:3000/api/v1/patients/user_id/"+userID
// Call function to connect server by API with specific url
cn.connectServer(url) { (jsonResponse) in
//Parsing JSON file
for item in jsonResponse["patients"].arrayValue{
//pasring json
}
}}
var url: String = ""
func connectServer(url:String,completionHandler: (jsonResponse: JSON) -> ()) {
Alamofire.request(.GET, url)
.responseJSON { (response) -> Void in
guard response.result.isSuccess else {
print("Error while fetching remote rooms: \(response.result.error)")
completion(nil)
return
}
guard let value = response.result.value as? [String: AnyObject],
completionHandler(jsonResponse: value) else {
print("Malformed data received from fetchAllRooms service")
completion(nil)
return
}
}
}