调用可以抛出,但不能从属性初始化程序

时间:2015-09-26 04:28:22

标签: swift swift2 nsfilemanager

更新到Swift 2.0后,当调用NSFielManager时,它会导致以下错误。你能告诉我这是什么问题吗?

let cachesDirectoryURL = NSFileManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)

错误

"调用可以抛出,但不能从属性初始化程序中抛出错误"

2 个答案:

答案 0 :(得分:0)

这意味着如果出现问题,我们必须捕获可能引发的错误:

do
{
    let cachesDirectoryURL = try NSFileManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
}
catch let error as NSError
{
    print(error.localizedDescription)
}

答案 1 :(得分:0)

如果您在一个类中将此声明为全局,则需要添加前缀“ try!”。赋予您要分配的价值。

喜欢

let cachesDirectoryURL = try! NSFileManager().URLForDirectory(.CachesDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)