我是Swift的新手,我在我的项目中实施了文件管理器概念,但它显示了问题,我不知道如何解决这个问题,请任何人帮我解决问题。
我在这里发布我的代码。
class func addSkipBackupAttributeToItemAtPath(filePathString: String) throws -> Bool
{
let URL: NSURL = NSURL.fileURLWithPath(filePathString)
assert(NSFileManager.defaultManager().fileExistsAtPath(URL.path!))
let err: NSError? = nil
let success: Bool = try URL.setResourceValue(Int(true), forKey: NSURLIsExcludedFromBackupKey) //---- This Line Shows the Issue.
if !success {
NSLog("Error excluding %@ from backup %@", URL.lastPathComponent!, err!)
}
return success
}
答案 0 :(得分:2)
Swift 2中新错误处理的好处是省略了准冗余返回值Bool
/ NSError
。因此,setResourceValue
不再返回Bool
,这是错误消息的原因。
由于该函数标记为throws
,我建议使用此语法,只传递setResourceValue
的结果
class func addSkipBackupAttributeToItemAtPath(filePathString: String) throws
{
let url = NSURL.fileURLWithPath(filePathString)
assert(NSFileManager.defaultManager().fileExistsAtPath(URL.path!))
try url.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey)
}
处理调用addSkipBackupAttributeToItemAtPath
答案 1 :(得分:1)
方法setResourceValue
是一个throw函数,不返回Bool。
尝试使用do-catch运行您的函数:
do {
try URL.setResourceValue(Int(true), forKey: NSURLIsExcludedFromBackupKey)
}
catch {
NSLog("Error excluding %@ from backup %@", URL.lastPathComponent!, err!)
}