Swift 2.0 守卫给我错误

标签 swift swift2 guard guard-statement

我正在使用 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/

相关文章:

ios - 为每个 TableView 单元执行不同的 segue

ios - 将委托(delegate)分配给第三类中另一个类的一个类

Swift 5. 'withUnsafeBytes' 已弃用 : use `withUnsafeBytes<R>(. ..)

ios - 首次启动/已登录 Storyboard View Controllers Swift

ruby-on-rails - Rails 3.2 GNTP 不发送通知

vue.js - 如何防止用户在 Nuxt 中使用中间件离开页面?

ruby - 当所有规范都通过guard-rspec时,有没有办法抑制Growl通知?

ios - 使用 MMSegmentSlider 的 UISlider 动画

ios - 如何在UIView上获得长按时间

swift - ReactiveCocoa 4 MVVM HTTP 请求最佳实践