Swift 3上的NSLocalizedString运行时错误

时间:2017-05-07 13:32:14

标签: ios swift nslocalizedstring

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

  

主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP.subcode = 0x0)

错误显示在此行上。我已使用okLabel创建SKLabelNode

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

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

"dialogOKFont" = "Optima-Bold";

如果有人给我一个答案或提示来解决这个错误,我真的很感激。提前谢谢。

1 个答案:

答案 0 :(得分:4)

请改为尝试:

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

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

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

仅使用 NSLocalizedString(...)就足以获得您所追求的本地化String:)