2

このアプリを実際に動かせる日が近づいています。もう1つだけ問題があります。これで、アプリが実行され、次のビュー コントローラーが表示しようとするとエラーが発生します。引用と著者を含むViewControllerを表示しています。このエラーが発生します

スレッド 1: EXC_BAD_INSTRUCTION (コード = EXC_1386_INVOP、サブコード = 0x0)

出力は次のとおりです。

致命的なエラー: 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
    
}

}

ここに画像の説明を入力

前もって感謝します!

編集 2021 年 12 月: 画像を置き換えて名前を省略

4

1 に答える 1

4

強制アンラップを使用したため、クラッシュしています。

IF LETを使用してデータが存在するかどうかを確認するベスト プラクティス 。

This way Try once : 
if let mStringvalue = businessQuote.dict[chosenQuote]{
  print(mStringvalue)
}
于 2016-04-26T17:20:48.257 に答える