gpt4 book ai didi

swift - 为什么我的局部变量显示为数字?

转载 作者:行者123 更新时间:2023-11-28 06:44:20 26 4
gpt4 key购买 nike

因此,我正在将我的应用程序翻译成另一种语言。我有一些带有内插变量的文本,例如:

label.text = String(format: NSLocalizedString("Your name is %d", comment: "label that show user's name"), name)

现在,我转到 Localizable.strings 文件并翻译它(实际上我不会翻译它):

"Your name is %d" = "Your name is %d"

但是在我的 ViewController 中,变量 %d 不是以字母形式出现,而是以随机数字形式出现,例如 782393 等。为什么会这样?一件奇怪的事情是,在一篇文章中我做了“同样的事情”:

anotherLabel.text = String(format: NSLocalizedString("Your name is %d and you have %d assignments", comment: "label that show user's name"), name, someArray.count)

翻译时:

"Your name is %d$1 and you have %d$2 assignments" = "Your name is %d$1 and you have %d$2 assignments"

奇怪的是第二个%d正常显示,数组中的对象数

这是怎么发生的?

谢谢!

最佳答案

%d 之类的东西称为格式说明符。它们因您要打印的内容而异。要打印 int,您可以使用 %d。要打印 C 风格的字符串,您可以使用 %s,要打印 Objective-C 字符串或对象,您可以使用 %@

在您的例子中,您看到了一些随机数,因为您正试图打印一个格式化为 int 的字符串。由于您的 name 变量可能是 Objective-C 或 Swift 字符串,因此您应该使用 %@ 作为格式说明符。

您可以在此处找到可用说明符的完整列表:String Format Specifiers

关于swift - 为什么我的局部变量显示为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com