我正在使用 Guard 函数,当我输入下面的 Guard 语句时:
var IOUArray = [IOU(amount: 20, payer: "Isabella", description:
"test"),IOU(amount: 30, payer: "Dad", description: "Test2")]
NSKeyedArchiver.archiveRootObject(IOUArray, toFile: "IOUArray")
guard
let books = NSKeyedUnarchiver.unarchiveObjectWithFile("IOUArray") as? [IOU]
我收到错误“在保护条件后预期有其他内容”,这没什么大不了的,因为我想在其中添加一个 else 子句,所以我写道:
else {return}
这次它抛出了错误“在 func 之外返回无效”,这很令人困惑,我以前没有见过这个错误。所以我在返回后的状态中添加了 nil 。同样的错误。我不知道发生了什么事。帮助将使我无限感激。
最佳答案
Else 错误。 保护条件必须有 else 关键字。我们可以将守卫视为带有空“if”的 if-else,并要求控制流在“else”中终止。
这是正确的代码
var IOUArray = [IOU(amount: 20, payer: "Isabella", description:
"test"),IOU(amount: 30, payer: "Dad", description: "Test2")]
NSKeyedArchiver.archiveRootObject(IOUArray, toFile: "IOUArray")
guard let books = NSKeyedUnarchiver.unarchiveObjectWithFile("IOUArray") as? [IOU] else {
return
}
关于Swift 2.0 守卫给我错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572453/