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

NSLocalizedString With Dynamic Variable (Swift) - Not Working

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

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

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

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

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

这是在我的视图控制器中:

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

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

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

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 是整数类型。仅对对象指针使用 %@