Загрузка SwiftyDropbox происходит не по порядку

У меня есть функция, которая загружает файлы из моего Dropbox в локальный каталог, а затем читает файлы в каталоге, чтобы заполнить таблицу. Две части, кажется, работают, за исключением того, что загрузка не начинается, пока остальная часть функции не будет закончена.

Я не нашел ответа в документации Swiftydropbox, которая, кажется, больше сосредоточена на IOS, чем на MacOS. Я подумал, что, возможно, загрузка в Dropbox порождает отдельный поток, а поведение может быть вызвано состоянием гонки, поэтому я добавил операторы для печати имени потока. Все шаги выполняются основным потоком.

Может кто-нибудь сказать мне, что это происходит и как я могу это исправить? Благодарю.

Вот моя функция и вывод консоли.

 @IBAction func loadFromDropboxButtonClick(_ sender: NSButton) {

    let client = DropboxClientsManager.authorizedClient
    //Download local copy of dropbox files

    print("Listing drop box files")
    print("Starting with \(countInbox()) files")
    print(Thread.main, Thread.current)

    let listRequest = client!.files.listFolder(path: "")

        .response { response, error in
            if let response = response {
                var downloadCount = 0
                for entry in response.entries {
                     if (entry.pathDisplay!.contains("HoursBlock")) {
                        downloadCount += 1
                        print(Thread.main, Thread.current)
                        let blockFilename = entry.pathDisplay?.components(separatedBy: "/").last
                        let destUrl = storageUrl?.appendingPathComponent(self.localDropboxFolder).appendingPathComponent(blockFilename!)
                        print("Downloading block to: \(destUrl)")
                        let destination: (URL, HTTPURLResponse) -> URL = { temporaryURL, response in
                            return destUrl!
                        }
                        client!.files.download(path: entry.pathDisplay!, overwrite: true, destination: destination)
                            .response { response, error in
                                if let response = response {
                                    //                                        print(response)
                                } else if let error = error {
                                    print(error)
                                }
                        }//download response


                    } //if name has hoursblock
                } //for entry
                print("\(downloadCount) files downloaded")
            } else if let error = error {
                print(error)
            }
    }//list & download

    print("Ending with \(countInbox()) files")

    print("Building table for display")
    dropBoxLoader.buildImportHoursArray(localDropboxFolder: localDropboxFolder)
    self.blocksFromDropboxTableView.reloadData()
    borderedScrollViewTable.isHidden = false
    deleteButton.isEnabled = true
    print(Thread.main, Thread.current)


} //loadfromDropbox

Перечисление файлов раскрывающихся списков. Начиная с 2 файлов: {число = 1, имя = основное} {число = 1, имя = основное}. Завершение создания 2 файлов. Таблица построения для отображения. Массив построения. Файлы локальных часовых блоков [файл:/// Пользователи / гость /Documents/TestLord/hoursFromDropbox/HoursBlock_529807430, файл:/// Пользователи / гость /Documents/TestLord/hoursFromDropbox/HoursBlock_529807497] {число = 1, имя = основное} {число = 1, имя = основное} {число = 1, имя = main} {number = 1, name = main} Загрузка блока в: Необязательно (файл:/// Пользователи / гость /Documents/TestLord/hoursFromDropbox/HoursBlock_529806969) {number = 1, name = main} {number = 1, name = main} Загрузка блока в: Необязательно (файл:/// Пользователи / гость /Documents/TestLord/hoursFromDropbox/HoursBlock_529786237) {number = 1, name = main} {number = 1, name = main} Загрузка блока в: Необязательно (файл:/// Пользователи / Гость / Документы /TestLord/hoursFromDropbox/HoursBlock_529807390) {number = 1, name = main} {number = 1, name = main} Загрузка блока в: Необязательно (файл:///Users/guest/Documents/TestLord/ хоу rsFromDropbox/HoursBlock_529807430) {число = 1, имя = основное} {число = 1, имя = основное} Загрузка блока в: Необязательно (файл:/// Пользователи / гость / Документы /TestLord/hoursFromDropbox/HoursBlock_529807497) 5 загруженных файлов

0 ответов

Другие вопросы по тегам