首页 > 解决方案 > 在 Swift 中带有变量的 NSLocalizedString 不起作用

问题描述

我必须在 if 中找到这些字符串,它使用 secondsRimanenti 变量执行倒计时。

if secondiRimanenti > 1{
   self.statoRicerca = "Cerco sismometri disponibili... \(secondiRimanenti) secondi"
}
else{
   self.statoRicerca = "Cerco sismometri disponibili... \(secondiRimanenti) secondo"
}
self.tableView.reloadData()
self.timerStart()

secondiRimanenti 的值(剩余秒数)从 5 秒开始下降到 0 秒这是错误:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x4)

我试过这两种方法:

let appSec = String(format: NSLocalizedString("Cerco sismometri disponibili... %@ secondi", comment: ""), secondiRimanenti)

let appSec = String.localizedStringWithFormat(NSLocalizedString("Cerco sismometri disponibili... %@ secondi", comment: ""), secondiRimanenti)

我该如何解决?谢谢!!

标签: iosswiftiphone

解决方案


您使用了错误的格式说明符。

%@是对象,一个Int(假设secondiRimanenti Int)是%ld

let appSec = String(format: NSLocalizedString("Cerco sismometri disponibili... %ld secondi", comment: ""), secondiRimanenti)

推荐阅读