【问题标题】:NSLocalizedString with variables in Swift doesn't work在 Swift 中带有变量的 NSLocalizedString 不起作用
【发布时间】:2020-07-04 10:37:49
【问题描述】:

我必须在 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)

我该如何解决? 谢谢!!

【问题讨论】:

  • 你能在这个sn-p之前放一个断点吗? secondiRimanenti 的值是多少?顺便说一句,如果您想本地化复数,推荐的方法是使用 stringsdict
  • secondiRimanenti(剩余秒数)的值从 5 秒开始下降到 0 秒
  • 我知道它应该保持一个介于 0...5 之间的值,但你能通过断点验证它实际上确实吗?跨度>

标签: ios swift iphone


【解决方案1】:

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

%@ 用于对象,Int(假设secondiRimanenti Int)是%ld

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多