iOS Swift追加2个多维数组

时间:2018-09-21 10:37:07

标签: swift multidimensional-array

我正在尝试附加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")
}

2 个答案:

答案 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)

    }