簡體   English   中英

我在代碼中的某個地方獲取了nil值,但我不確定它在哪里以及如何修復它

[英]i am getting a nil value somewhere in my code and i am unsure where it is and how to fix it

這是我收到的error

錯誤:執行被中斷,原因:EXC_BAD_INSTRUCTION(代碼= EXC_I386_INVOP,子代碼= 0x0)。

我知道錯誤是由代碼中某處的nil值引起的,但我找不到它。 這是任何人對nil值在哪里都有任何見識的代碼,那么將不勝感激。

import UIKit

var randomNumber = 0
var challengesArray = [""]
var challengeNumber = 0
var mad : String = ""
var challenge : String = ""

func ChallengeBankSplitter()  {

    let fileURLProject = Bundle.main.path(forResource: "Challenges", ofType: "txt")
    var readStringProject = ""
    do {
        readStringProject = try String(contentsOfFile: fileURLProject!, encoding: String.Encoding.utf8)
    } catch let error as NSError {
        print ("Failed to read from project")
        print (error)
    }
    challengesArray =  readStringProject.components(separatedBy: ".") as Array
    var arrayLength = challengesArray.count
    randomNumber = arrayLength

}


func ChallengeSelector() {
    ChallengeBankSplitter()
    challengeNumber = Int((arc4random_uniform(UInt32(randomNumber))))
    challenge = challengesArray[challengeNumber]
    print (challenge)
}

ChallengeSelector()

我可以給下面的變量提供默認值

var randomNumber = 0
var challengesArray = [""]
var challengeNumber = 0
var mad : String = ""
var challenge : String = ""

因此,如果您遇到零問題,則訪問上面的內容一定不是問題。 因此,請確保訪問所有其他變量(如果為可選,則首先檢查是否為可選),然后使用if letguard來避免在運行時訪問nil導致崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM