Swift попробуйте возврат для fileManager.copyItem - PullRequest
0 голосов
/ 07 октября 2019

Я понимаю, что могу попробовать файл fileManager.copyItem.

Но я хочу вернуть информацию об успешности операции или нет. Поэтому я попытался сделать следующее:

            do {
                try let isSucessful = fileManager.copyItem(at: originURL, to: destinationURL)
                return isSucessful
            }
            catch let error {

Вот документация, подтверждающая, что copyItem (atPath: toPath :) действительно возвращает логическое значение: https://developer.apple.com/documentation/foundation/filemanager/1412957-copyitem

Но "Невозможно преобразовать возвращаемое выражениетипа '()' для возврата типа 'Bool' "do Как я могу вернуться, если операция прошла успешно или нет для операции try?

1 Ответ

1 голос
/ 07 октября 2019

В Swift, copyItem не возвращает никакого значения (несмотря на довольно запутанную документацию), поэтому вы ничего не получаете, присваивая его «результат» переменной (вашему isSucessful). Возможно, вы имеете в виду такие вещи:

do {
   try fileManager.copyItem(at: originURL, to: destinationURL)
   return true
} catch {
   return false 
}

Это отвечает на вопрос «была ли ошибка или нет?», О чем вы, похоже, спрашиваете. версия (если вы больше ничего не делаете в этом методе) будет:

return nil != (try? FileManager.default.copyItem(at: originURL, to: destinationURL))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...