【问题标题】:Thread 1 EXC_bad_instruction (code=exc_1386_invop subcode=0x0)线程 1 EXC_bad_instruction(代码=exc_1386_invop 子代码=0x0)
【发布时间】:2016-10-10 04:32:50
【问题描述】:

我对这段代码有疑问。为什么它在“let session”行上给我一个错误“Thread 1 EXC_bad_instruction (code=exc_1386_invop subcode=0x0)”?

import Foundation

protocol WeatherServiceDelegate{
    func setWeather(weather:Weather)
}

class WeatherService{

    var delegate: WeatherServiceDelegate?
    func getWeather(city: String){
        let path = "http://api.openweathermap.org/data/2.5/weather?q=Boston&"
        let url = URL(string: path)

        let session = URLSession.shared.dataTask(with: url!) { (data: Data?, respone:URLResponse?,error: Error?) in
            print(">>>>>\(data)")
        }

        session.resume()

【问题讨论】:

  • 我认为在 swift 3 session 中是关键字,所以使用其他词表示 decalration
  • 而且它还给了我一条错误消息“致命错误:在展开可选值时意外发现 nil”
  • @Jecky 我确实尝试更改为不同的单词,但它仍然给我同样的错误
  • 等我查一下

标签: ios swift xcode xcode8


【解决方案1】:

如果您在“展开时发现零”,则 url 创建不起作用

一般情况下,您应该尽可能远离 !s 并使用 if letguard let 投射它们。在这种情况下,我不确定它为什么会失败,但是如果您隔离 url 创建,您可能会找出问题所在。

【讨论】:

  • 你是对的,当我发布这个问题时,URL 不起作用。非常感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多