SWIFT:防止iCloud上的备份文件

3 nsurl ios icloud swift

如何在我的应用中阻止iCloud备份.为此我尝试使用NSFileManager. 以及 如何在Swift中实现addSkipBackupAttributeToItemAtURL?

I tried with this stuff

extension NSFileManager{
    func addSkipBackupAttributeToItemAtURL(url:NSURL)->Bool{
        var error:NSError?
        let success:Bool = url.setResourceValue(NSNumber.numberWithBool(true), forKey: NSURLIsExcludedFromBackupKey, error: &error);
        return success;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它给了我错误:调用中的额外参数错误

现在调用上面的函数......

.NSFileManager.defaultManager()addSkipBackupAttributeToItemAtURL(NSURL.fileURLWithPath());

Ole*_*ann 12

您的代码看起来像Swift 1.x语法.假设您使用的是Swift 2.x,则需要使用本机Swift 错误处理语法.像这样:

extension NSFileManager{
    func addSkipBackupAttributeToItemAtURL(url:NSURL) throws {
        try url.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey)
    }
}
Run Code Online (Sandbox Code Playgroud)

在callsite上,您需要像这样处理错误:

do {
    let url = ... // the URL of the file
    try NSFileManager.defaultManager().addSkipBackupAttributeToItemAtURL(url)
} catch {
    // Handle error here
    print("Error: \(error)")
}
Run Code Online (Sandbox Code Playgroud)


Jim*_*imi 6

Swift 3版

do {
     var resourceValues = URLResourceValues()
      resourceValues.isExcludedFromBackup = true
      try url.setResourceValues(resourceValues)
} catch {
      print(error.localizedDescription)
}
Run Code Online (Sandbox Code Playgroud)