Swift 3上的NSLocalizedString运行时错误
问题描述:
我正在用Swift和SpriteKit开发一个应用程序。我已经转换我的代码从雨燕2.3斯威夫特3,但是当我运行的代码,我得到了以下错误:Swift 3上的NSLocalizedString运行时错误
Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP.subcode=0x0)
错误出现在这条线。我创建了okLabel
与SKLabelNode
。
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
你:)
+0
非常感谢!有效! – vanagar
它看起来像你强制转换为字符串括号S的外面为你的字体后。另外,看看这个扩展http://*.com/questions/25081757/whats-nslocalizedstring-equivalent-in-swift – TheValyreanGroup
!意思是“如果我要找的东西不存在,请崩溃”。 – gnasher729
Paulo Mattos的回答解释了这个问题。但是,你真的想使用NSLocalizedString来获取字体名称吗? – gnasher729