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
}
在使用 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
}