二元运算符'&&'不能应用于两个Bool操作数

Luk*_*ol 10 beta xcode7 swift2

我最近将Xcode更新为新的7.0 beta版.

我与助手进行了迁移,但还有一些问题.

func saveContext () {
    if let moc = self.managedObjectContext {
        var error: NSError? = nil
        if moc.hasChanges && !moc.save() {
            NSLog("Unresolved error \(error), \(error!.userInfo)")
            abort()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

第4行有4个问题:第一个是:

二元运算符'&&'不能应用于两个Bool操作数

第二个是:

调用可以抛出,但它没有标记为'try',并且没有处理错误

有人可以帮帮我吗?

Lau*_*ent 2

这是一些可以解决问题的代码。请记住在 throw 语句之前添加 try 并捕获它们。

func saveContext () {
    if let moc = self.managedObjectContext {
        if moc.hasChanges  {
            do {
                try moc.save()
            } catch {
                NSLog("Unresolved error \(error)")
                abort()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @vacawama:如果我没记错的话,一个简单的“catch”是“catch let error”的快捷方式。 (3认同)