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

Dav*_*e G 3 nslocalizedstring ios swift

我开始使用整合本地化为我的应用程序本指南.它工作得很好,直到我本地化了一个包含动态变量的字符串.原来是这样的:

let myString = "I have \(countOfMoney) dollars in my wallet."
Run Code Online (Sandbox Code Playgroud)

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

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

localizedMsg="I have %@ dollars in my wallet.";
Run Code Online (Sandbox Code Playgroud)

这是在我的View Controller中:

let countOfMoney = moneyInWallet.count
let localizedMsg = String(format: NSLocalizedString("localizedMsg", comment: ""), countOfMoney)
Run Code Online (Sandbox Code Playgroud)

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

rma*_*ddy 7

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

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

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

这将添加以下行:

"I have %d dollars in my wallet." = "I have %d dollars in my wallet.";
Run Code Online (Sandbox Code Playgroud)

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

  • `genstrings` 是一个工具,它扫描你所有的源代码来调用 `NSLocalizedString` 并为你生成 `Localizable.strings` 文件。 (2认同)