线程 1 EXC_bad_instruction(代码=exc_1386_invop 子代码=0x0)

Posted

技术标签:

【中文标题】线程 1 EXC_bad_instruction(代码=exc_1386_invop 子代码=0x0)【英文标题】:Thread 1 EXC_bad_instruction (code=exc_1386_invop subcode=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 我确实尝试更改为不同的单词,但它仍然给我同样的错误 等我查一下 【参考方案1】:

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

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

【讨论】:

你是对的,当我发布这个问题时,URL 不起作用。非常感谢您的建议。

以上是关于线程 1 EXC_bad_instruction(代码=exc_1386_invop 子代码=0x0)的主要内容,如果未能解决你的问题,请参考以下文章

Swift,线程 1:EXC_BAD_INSTRUCTION 错误

错误“线程 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”是啥意思?

线程 1:EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0*0) 错误

线程 1:EXC_BAD_INSTRUCTION(代码=EXC_1386_INVOP,子代码=0x0)

SwiftUI:线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

iOS - Xcode 线程 1 EXC_BAD_INSTRUCTION