这是我收到的错误
error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=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 let
或 guard
以避免在运行时访问 nil 导致崩溃。
关于swift - 我在代码中的某处得到一个 nil 值,我不确定它在哪里以及如何修复它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52944525/