线程 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-04-26 17:07:29 【问题描述】:如此接近真正让这个应用程序移动。还有一个问题。现在,我的应用程序将运行,当下一个视图控制器尝试显示时它会给我一个错误。我正在展示一个带有引用和作者的 ViewController。我收到此错误
输出如下:
致命错误:在展开 Optional 时意外发现 nil
这是有错误的代码:
import Foundation
import UIKit
import Social
class businessQuote: UIViewController
//============================//
//********** Outlets *********//
//============================//
let utility = Utility()
@IBOutlet weak var quoteDisplay: UILabel!
@IBOutlet weak var authorDisplay: UILabel!
//GET BACK TO THIS
//============================//
//********** General *********//
//============================//
let date = NSDate()
var Author: String = ""
var Quote: String = ""
override func viewDidLoad()
super.viewDidLoad()
// Generates Random Number
func randomNumber(arrayLength: Int) -> Int
let unsignedArrayCount = UInt32(arrayLength)
let unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
let randomNumber = Int(unsignedRandomNumber)
return randomNumber
// Importing Quotes plist File
let businessQuote = ImportList(FileName: "BusinessList")
// Selects Quote
let chosenQuote: String = businessQuote.array[randomNumber(businessQuote
.count())] as! String
let chosenAuthor = ((businessQuote.dict[chosenQuote]))! as String //This Is Where the error is
// Assigns Quote & Author to IBOutlet
Author = chosenAuthor
Quote = chosenQuote
quoteDisplay.text = Quote
authorDisplay.text = Author.uppercaseString
提前谢谢你!
编辑 21 年 12 月:替换图像以省略名称
【问题讨论】:
你的字典元素是 nil 【参考方案1】:由于使用强制解包,它正在崩溃。
使用 IF LET 来检查数据是否存在的最佳做法,因为 IF LET 会执行此操作(展开)。
This way Try once :
if let mStringvalue = businessQuote.dict[chosenQuote]
print(mStringvalue)
【讨论】:
这确实解决了那个错误的问题,现在它说'chosenAuthor'是一个未解决的标识符。包含“Author = selectedAuthor”的行有错误。以上是关于线程 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)