【发布时间】:2016-07-21 17:32:01
【问题描述】:
我正在尝试创建一个带有 Strings 数组的 String,我希望这可以工作:
let format = "%@ and %@!"
let str1 = "bla"
let str2 = "blob"
private func formatItNicely(format: String, substrings: [String]) -> String {
return String(format: format, arguments: substrings)
}
let result = formatItNicely(format, substrings: [str1, str2])
但我收到了fatal error: can't unsafeBitCast between types of different sizes。
【问题讨论】:
-
“我希望这会起作用”我不明白你为什么会这样。数组不是可变参数。问题是 Swift 没有“splat”运算符。你不能把一个数组变成一个可变参数。
-
@matt 我可以以某种不同的方式定义我的函数以便能够做到这一点吗?如果我将参数子字符串定义为
String...我会得到相同的结果 -
您可以手动将每个字符串按顺序替换为每个
%@,而不使用String(format:)。否则,您将不得不对 C 可变参数的东西感到沮丧。