NSTextField:将 String 转换为 Int 在 Xcode 之外中止 (nil)

NSTextField: Converting String to Int aborts (nil) outside of Xcode

我有一个 MacOS 应用程序已经运行了大约一年。包含 20 个 NSTextField 的屏幕上的 NSTextField 开始中止 "unexpectedly found nil while unwrapping an Optional value"。到目前为止,我已经完成了以下工作:

当我在我的开发帐户中 运行 中 Xcode 时,这修复了应用程序。当我生成存档并将其传输到我的生产帐户时,它仍然中止。

我假设这仍然是罪魁祸首,因为我并没有从核心转储中得到太多信息(因为我可能不明白我在看什么)。

这是我的代码。 (game_number 是一个 Int

game_number = Int(gameNumberTextField.stringValue)!

当我拆分代码并执行此操作时:

let theNumber = (gameNumberTextField.stringValue)!
game_number = Int(theNumber)

theNumber 是一个字符串并且是正确的,但是 game_number 是 nil

你应该像这样打开可选值:

guard let theNumber = gameNumberTextField.integerValue else {
        // Value not found, handle this case
        return
    }

希望对您有所帮助!

NSTextField parent class NSControl 有一个 属性 叫做 integerValue 其中 returns 一个 Int:

game_number = gameNumberTextField.integerValue