Swift 3 上的 NSLocalizedString 运行时错误

NSLocalizedString runtime error on Swift 3

我正在使用 Swift 和 SpriteKit 开发应用程序。我已将我的代码从 Swift 2.3 转换为 Swift 3,但是当我 运行 代码时,出现以下错误:

Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP.subcode=0x0)

此行出现错误。我用 SKLabelNode.

创建了 okLabel
okLabel.fontName = (text: NSLocalizedString("dialogOKFont", comment: "")) as! String

Localizable.strings(Base) 上,我定义 "dialogOKFont" 如下:

"dialogOKFont" = "Optima-Bold";

如果有人给我答案或提示修复此错误,我将不胜感激。提前谢谢你。

试试这个:

okLabel.fontName = NSLocalizedString("dialogOKFont", comment: "")

您的原始代码有两个相关错误:

  • 您将本地化字符串包装在单个元素元组中:(text: ...)
  • 然后您将此元组转换回 String,导致 EXC_BAD_INSTRUCTION 崩溃

仅使用 NSLocalizedString(...) 就足以获得您想要的本地化 String :)