string - 带有变量的 NSLocalizedString 对我不起作用

标签 string swift variables localization nslocalizedstring

所以我有以下代码:

游戏场景:

Rule = Level / 10
let StrRule = String(Rule) //for example Level = 24 -> Rule = 2

let RegelString = String(format: NSLocalizedString("RegelText", comment: ""), StrRule)

//Give the String out in an UILabel as text
RegelLabel.text = RegelString

这就是我的 Localized.strings 的样子:

"RegelText" = "You lose %d goals if you miss.";

所以我开始游戏,我的等级是24。所以规则应该是2。

所以我构建并运行,但是当我启动应用程序时,他向我展示了一些疯狂的数字。 标签就像:如果你错过了,你就会失去 1314063968 个目标。

为什么不起作用?

最佳答案

%d 用于数字。 StrRule 显然不是一个数字。您打算使用%s吗? RegelText 应该是这样的:

"RegelText" = "You lose %s goals if you miss.";

或者只使用Rule而不将其转换为字符串。代码可能是这样的:

Rule = Level / 10
let RegelString = String(format: NSLocalizedString("RegelText", comment: ""), Rule)

在这种情况下,RegelText 仍将使用 %d

此外,我没有看到您对 Level/10 的结果进行四舍五入。我知道整数除以整数会得到整数,而不是小数。但为了安全起见,我认为你应该将 Level/10 放在 roundfloor 函数中。

关于string - 带有变量的 NSLocalizedString 对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113890/

相关文章:

swift - 无法将类型 'subSequence'(又名 'String.CharacterView')的值转换为集合中的类型 'String'

json - 如何从 alamofire 响应中获取字典数组的值?

python - 有没有办法让 locals() 和 globals() 像 defaultdict 一样

java - 如何在 while 循环后正确初始化和使用变量

java - 使用 JAVA 将 AES 对称 key 作为字符串传递

java - 如何获取要读取和计算的第二个文本字段值

java - 从 ArrayList 内的 ArrayList 获取字符串

ios - View Controller 之间的过渡方向

ios - 在 SwiftUI 中实时更新相对时间

java - 从加载的类中获取类的变量和方法。