您如何调用FileManager.setAttributes()

时间:2018-11-07 17:45:40

标签: ios swift

我正在应用Realm文档(https://realm.io/docs/swift/latest/)中的代码段,但无法编译

 try! FileManager.default.setAttributes([FileAttributeKey(rawValue: NSFileProtectionKey): NSFileProtectionNone], ofItemAtPath: folderPath)

此错误是什么意思

  

无效的初始化调用,其类型与“ FileAttributeKey”相同   参数

1 个答案:

答案 0 :(得分:2)

您正在尝试使用ObjC FileAttributeKey(其类型为NSFileProtectionKey,又与NSFileAttributeKey相同)来启动FileAttributeKey。因此,无需启动一个,只需单独使用NSFileProtectionKey

[NSFileProtectionKey: NSFileProtectionNone]

根据您的Swift版本,可能会告诉您密钥已重命名。

let attributes = [ FileAttributeKey.protectionKey : FileProtectionType.none ]

try! FileManager.default.setAttributes(attributes)

setAttributes方法需要一个类型为[FileAttributeKey : Any]的值,因此,如果我们直接将属性作为字典传递,则可以推断出FileAttributeKey,因为可以推断出密钥类型。

try! FileManager.default.setAttributes([.protectionKey: FileProtectionType.none], ofItemAtPath: folderPath)