2016-07-03 4 views
0

При использовании Xcode 8 и Swift 3, я пытаюсь реализовать следующий метод для протокола FileManagerDelegate:Swift 3 FileManagerDelegate: ошибка компилятора shouldRemoveItemAt

private func fileManager(_ fileManager: FileManager, shouldRemoveItemAt URL: URL) -> Bool { 
    var shouldDelete = true 
    let urlString = URL.absoluteString 
    if urlString?.range(of: "keepfiles") != nil { 
     shouldDelete = false 
    } 
    return shouldDelete 
    } 

компилятор показывает следующее сообщение об ошибке:

Use of undeclared type: 'URL' 

, но он не предлагает решения для его устранения. Из-за этого я не могу проверить выборочное удаление. Если я изменю объявление типа URL-адреса в NSURL, ошибка исчезнет, ​​но делегат никогда не будет вызван, и все файлы будут удалены.

Кто-нибудь знает, почему это происходит и как я могу это исправить?

ответ

1

Вы пытались получить absoluteString от typeURL вместо примера url. Измените имя параметра в более читаемом формате и сделайте вот так: ошибка исчезнет.

private func fileManager(_ fileManager: FileManager, shouldRemoveItemAt url: URL) -> Bool { 
      var shouldDelete = true 
      let urlString = url.absoluteString 
      if urlString?.range(of: "keepfiles") != nil { 
       shouldDelete = false 
      } 
      return shouldDelete 
     } 
+0

Странно, что URL-адрес URL был сгенерирован с помощью автозавершения Xcode; возможно, я должен сообщить об этом в репортере. –

+0

@MichaelSheaver Может быть, если вы так думаете, дважды проверьте его. –

Смежные вопросы