我正在尝试附加2个数组,并且收到以下错误消息。
无法将类型[[String.SubSequence]]'(也称为“数组>”)的值转换为预期的参数类型“ [String]”
这是我的代码。
func getFiles() {
print("Enter getFiles")
arrayBookName.removeAll()
let fileManager = FileManager.default
let path = Bundle.main.path(forResource: "LVAudioBooks", ofType: nil)
do {
let items = try fileManager.contentsOfDirectory(atPath: path!)
for item in items {
var arrayTemp = [item.split(separator: ".")]
//arrayBookName += [["temp", "help"]]
arrayBookName.append(arrayTemp) <-- error occurs here**
//print(arrayBookName, arrayTemp)
}
} catch {
// failed to read directory – bad permissions, perhaps?
}
print(arrayBookName.count)
print(arrayBookName)
print("Leave getFiles")
}
答案 0 :(得分:0)
String.split(separator:)
返回类型[Substring]
而不是[String]
。
要根据您的情况将[Substring]
转换为[String]
,可以使用以下代码:
var arrayTemp = [item.split(separator: ".").map({ String($0) })]
答案 1 :(得分:0)
这里是一个班轮:
items.forEach{arrayBookName.append(contentsOf: $0.split(separator: ".").map{String($0)})}
而不是:
for item in items {
var arrayTemp = [item.split(separator: ".")]
//arrayBookName += [["temp", "help"]]
arrayBookName.append(arrayTemp) <-- error occurs here**
//print(arrayBookName, arrayTemp)
}