2016-05-16 44 views
2

我開始使用this guide將本地化集成到我的應用程序中。它很好,直到我本地化一個包含動態變量的字符串。原來是這樣的:帶動態變量(Swift)的NSLocalizedString - 不工作

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) 

然而,這條線顯示爲一個錯誤,當我上運行的應用程序模擬器。我如何解決它?

回答

4

您的設置不正確。您的代碼應該是這樣的:

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是一個整數類型。對象指針只能使用%@

+0

我只是模仿你的代碼的形式,它的工作,所以謝謝。通過運行genstrings,你的意思是什麼? –

+1

'genstrings'是一個工具,它可以掃描您調用「NSLocalizedString」的所有源代碼,併爲您生成Localizable.strings文件。 – rmaddy