NSLocalizedString与动态变量(Swift) - 不工作

时间:2016-05-16 23:24:46

标签: ios swift nslocalizedstring

我开始使用this guide将本地化集成到我的应用中。它工作得很好,直到我本地化了一个包含动态变量的字符串。原来是这样的:

let myString = "I have \(countOfMoney) dollars in my wallet."

然后我尝试模仿this堆栈答案来本地化它。但是,我收到了EXC_Bad_Access错误。以下是我尝试本地化的方法。

这是我的Localizable.strings英文文件:

localizedMsg="I have %@ dollars in my wallet.";

这是在我的View Controller中:

let countOfMoney = moneyInWallet.count
let localizedMsg = String(format: NSLocalizedString("localizedMsg", comment: ""), countOfMoney)

但是,当我在模拟器上运行应用程序时,此行显示为错误。我该如何解决?

1 个答案:

答案 0 :(得分:7)

您的设置不正确。您的代码应如下所示:

let localizedMsg = String(format: NSLocalizedString("I have %d dollars in my wallet.", comment: ""), countOfMoney)

现在运行genstrings以获取更新的Localizable.strings文件。

这将添加以下行:

"I have %d dollars in my wallet." = "I have %d dollars in my wallet.";

另请注意从%@%d的更改。这假设countOfMoney是整数类型。仅对%@使用对象指针。