iOS swift добавляют 2 многомерных массива - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь добавить 2 массива и получаю следующее сообщение об ошибке.

Невозможно преобразовать значение типа '[[String.SubSequence]]' (он же 'Array>') в ожидаемый тип аргумента '[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 голосов
/ 21 сентября 2018

Вот один вкладыш:

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)

    }
0 голосов
/ 21 сентября 2018

String.split(separator:) возвращает тип [Substring], а не [String].

Для преобразования [Substring] в [String], в вашем случае вы можете использовать следующее:

var arrayTemp = [item.split(separator: ".").map({ String($0) })]

...