gpt4 book ai didi

swift - 无法将类型 '()?' 的值转换为指定的 Bool 类型

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:37 25 4
gpt4 key购买 nike

我尝试编写更改文件属性的代码,但出现编译错误。

代码如下:

func addSkipBackupAttributeToItemAtURL(URL: NSURL) -> Bool{

let fileManager = NSFileManager.defaultManager()
assert(fileManager.fileExistsAtPath(URL.absoluteString))

var error:NSError?
let success:Bool = try? URL.setResourceValue(NSNumber(bool: true),forKey: NSURLIsExcludedFromBackupKey)

if !success {
print("Error excluding \(URL.lastPathComponent) from backup \(error)")
} else {
print("File at path \(URL) was succesfully updated")
}

return success
}

错误是:

Cannot convert value of type '()?' to specified type 'Bool'

我该如何解决?

最佳答案

调用 url?.setResourceValue(NSNumber(bool: true),forKey: NSURLIsExcludedFromBackupKey) 不返回 Bool。您期待一个 Bool 作为响应。这就是错误的原因。

setResourceValue 方法的 Apple 文档说

In Swift, this method returns Void and is marked with the throws keyword to indicate that it throws an error in cases of failure.

do {
try url?.setResourceValue(NSNumber(bool: true), forKey: NSURLIsExcludedFromBackupKey)

//...
}
catch let error as NSError {
//...
}

关于swift - 无法将类型 '()?' 的值转换为指定的 Bool 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34210898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com