Swift 3 FileManagerDelegate: shouldRemoveItemAt 编译错误

Swift 3 FileManagerDelegate: shouldRemoveItemAt compiler error

在使用 Xcode 8 和 Swift 3 时,我正在尝试为 FileManagerDelegate 协议实现以下方法:

  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,错误就会消失,但委托永远不会被调用并且所有文件都会被删除。

有谁知道为什么会这样,我该如何解决?

您试图从 type URL 而不是实例 url 获取 absoluteString。将您的参数名称更改为更易读的格式并这样做,错误将消失。

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
        }