2016-04-26 130 views
1

如此接近实际让这个应用程序移动。还有一个问题。现在,我的应用程序将运行,当下一个视图控制器试图显示时它会给我一个错误。我用一个引用和一个作者来展示一个ViewController。我得到这个错误线程1:EXC_BAD_INSTRUCTION(code = EXC_1386_INVOP,subcode = 0x0)

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP,subcode=0x0)

输出如下:

fatal error: unexpectedly found nil while unwrapping an Optional

这是错误的代码:

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 

} 

} 

Here's a screenshot

预先感谢您!

+0

您的词典元素为nil –

回答

3

它由于使用武力解开它崩溃。

最佳实践使用如果LET检查数据是否存在,因为IF LET做了它(解包)。

This way Try once : 
if let mStringvalue = businessQuote.dict[chosenQuote]{ 
    print(mStringvalue) 
} 
+0

这确实解决了这个错误的问题,现在它说'selectedAuthor'是一个未解决的标识符。包含“Author = selectedAuthor”的行有错误。 –

+0

更新您的代码accrodingly。 –

+0

感谢您的帮助。 –

相关问题