Swift &引用;执行被中断,原因是:EXC“U BAD”指令;尝试发出GET请求时出错

Swift &引用;执行被中断,原因是:EXC“U BAD”指令;尝试发出GET请求时出错,swift,xcode,get,httprequest,urlsession,Swift,Xcode,Get,Httprequest,Urlsession,我试着在我的操场上跑步: func getWeatherForecast(){ let Endpoint : String = "http://dataservice.accuweather.com/currentconditions/v1/{}" let url = URL(string:Endpoint) let parameters = ["apikey":"API_KEY"] as [String:Any?] var urlRequest = URLRequest(url:url!)

我试着在我的操场上跑步:

func getWeatherForecast(){
let Endpoint : String =  "http://dataservice.accuweather.com/currentconditions/v1/{}"
let url = URL(string:Endpoint)

let parameters = ["apikey":"API_KEY"] as [String:Any?]
var urlRequest = URLRequest(url:url!)
do
{urlRequest.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)
} catch {
    print("error")
}

let task = URLSession.shared.dataTask(with: urlRequest) {(data, response, error) in
    do {
        let json = try JSONSerialization.jsonObject(with: data!, options: [])
        print("The Response is : ",json)
    } catch {
        print("JSON error: \(error.localizedDescription)")
    }
}
task.resume()
}
getWeatherForecast()
然后我不断得到以下两个错误:

error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION 
(code=EXC_I386_INVOP, subcode=0x0).
The process has been left at the point where it was interrupted, use 
"thread return -x" to return to the state before expression 
我已经尝试了许多运行此API调用的变体,但我无法找出代码的错误。有人能帮忙吗?我只是想做一个简单的GET,但它似乎一直在告诉我“致命错误:在展开可选值时意外地发现了nil”,我觉得我已经正确地展开了


任何帮助都将不胜感激。谢谢大家!

您正在调用一个被苹果阻止的“http”url,因为它不安全。您必须在plist文件中使用“https”或临时允许它。

with:data中:数据可以为零,应用程序将崩溃。事先检查零值。此外,最好先检查是否收到错误。如果您这样做了,就没有必要检查数据了all@KirilS. 所以我移除了原力展开并检查为零,但我仍然得到相同的错误。另外,您的意思是在尝试运行JSONserialization之前先检查错误吗。。。这不是请求,而是URL:
http://dataservice.accuweather.com/currentconditions/v1/{}
不是有效的URL(不允许使用方括号,如果需要,应转义),例如
http://dataservice.accuweather.com/currentconditions/v1/%7B%7D
这似乎是该部分的诀窍。但我仍然得到相同的零错误。这是在我的任务之后发生的。resume()。有什么想法吗?我是否处理数据有误?编辑:当我删除时!从
数据中
它要求我添加!您可以始终执行
guard let data=data-else{//data为零,执行其他操作}