我有一个包含字符串的数组,即Array
我试图连接字符串,但我得到一个错误" 字符串与UInt8不相同"
var titleString:String! = ""
for title in array {
titleString += "\(title)"
}
答案 0 :(得分:4)
要连接字符串数组的所有元素,可以使用reduce
方法:
var string = ["this", "is", "a", "string"]
let res = string.reduce("") { $0 + $1 }
第一个参数是初始字符串,它是空的,第二个是闭包,它是为数组中的每个元素执行的。闭包接收2个参数:上一步返回的值(或初始值,如果它是第一个元素),以及当前元素值。
更多信息here
附录我忘记明确回答您的问题:连接不起作用,因为您将titleString
声明为可选 - 只需转换为非可选变量即可工作。如果您仍想使用可选项,请在执行赋值时使用强制解包:
titleString! += "\(title)"
附录2 正如@MartinR所建议的那样,还有另一种更简单的连接方式:
join("", string)
答案 1 :(得分:0)
在Swift 3中,这是你如何连接String数组的元素:
["this", "is", "a", "string"].joined(separator: "")
虽然joined(separator:)
真的适合在字符串之间放置一个分隔符。 Reduce更简洁:
["this", "is", "a", "string"].reduce("", +)