Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift plist文件中字符串插值的变量_Swift_Plist_String Interpolation - Fatal编程技术网

swift plist文件中字符串插值的变量

swift plist文件中字符串插值的变量,swift,plist,string-interpolation,Swift,Plist,String Interpolation,我想看看是否有可能从plist获取一个包含变量的字符串 就像你平时做的那样 let string1 = "a string variable" print("this is \(string1)" 我想把我的plist文件“这是\(string1)” 那么,如何在plist文件中对其进行格式化,或者在将其从plist文件中提取为字符串时对其进行格式化呢 或者,在我将整个字符串从plist文件中拉出后,我需要重建整个字符串吗 谢谢正确的解决方案是使用字符串格式,而不是字符串插值 在plist中

我想看看是否有可能从plist获取一个包含变量的字符串

就像你平时做的那样

let string1 = "a string variable"

print("this is \(string1)"
我想把我的plist文件
“这是\(string1)”

那么,如何在plist文件中对其进行格式化,或者在将其从plist文件中提取为字符串时对其进行格式化呢

或者,在我将整个字符串从plist文件中拉出后,我需要重建整个字符串吗


谢谢

正确的解决方案是使用字符串格式,而不是字符串插值

在plist中输入以下值:

this is %@
然后根据需要加载该值。将其与
字符串(格式:…)
一起使用

如果
格式
这是%@
则结果将是:

这是一个字符串变量


对于
Int
变量,使用
%d
。将
%f
用于
双精度
。有关格式说明符的更多详细信息,请参阅上的文档。

我认为您不应该建议这样做。正如经常指出的,可变格式字符串是一个巨大的安全漏洞
stringWithFormat
用于文字格式字符串。显然,您的技术是有效的,但向初学者展示并推荐它似乎有点不负责任。@matt我知道您在使用这种方法时会丢失编译时检查,但我不知道安全性问题。你有没有这方面的参考资料?在苹果公司的旧可可名单上,人们经常会这么说。即使是你自己的答案()也会出现在另一个答案()中,当然这并不是一个“参考”。所以我可以问你,做我正在寻找的事情的更安全的方法是什么。我做了一些研究,看起来带有格式漏洞的字符串与print命令有关。我没有使用打印命令。我正在用正在生成的字符串填充文本字段。@EBM我发现:我的建议没有安全风险,因为格式字符串不是来自用户或未知来源。你控制着他们。
let format = ... // the format string loaded from the plist
let string1 = "a string variable"
let result = String(format: format, string1)