NSTextField:将字符串转换为Int在Xcode之外的中止(nil)

问题描述 投票:0回答:2

我有一个MacOS应用程序已经工作了大约一年。包含20个NSTextField的屏幕上的NSTextField开始中止,“在展开可选值时意外发现nil”。到目前为止,我已经完成了以下工作:

  • 删除并重新分配了textfield的IBOutlet链接
  • 删除并重建文本字段

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

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

这是我的代码。 (game_numberInt

game_number = Int(gameNumberTextField.stringValue)!

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

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

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

swift macos nstextfield
2个回答
0
投票

NSTextField父类NSControl有一个名为integerValue的属性,它返回一个Int

game_number = gameNumberTextField.integerValue 

0
投票

您应该打开可选值,如下所示:

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

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.