1

我试图save在我的 Model 类上调用函数,但是即使它适用于 1.2,它也会在 2.1 中引发此错误:

Argument passed to call that takes no arguments

func save() -> NSError?{
    var error: NSError?
    self.context?.save(error) // Error: Argument passed to call that takes no arguments
    return error
}

编辑:

我将代码转换为:

func save() -> NSError?{
    do {
        try context!.save()
    } catch let error as NSError? {
        print("error saving core data: \(error)")
    }
}

...但现在我收到:

Missing return in a function expected to return 'NSError?'

4

3 回答 3

2

在 swift 2.0 中,context.save 函数实现根据新的错误处理进行了更改!

将其更改为

 do{
      try context!.save()
      }catch let error as NSError{
         print("error saving core data: \(error)")
        }
于 2015-11-13T14:18:48.860 回答
1
func save() -> NSError?{
    do {
        if let context = context {
            try context.save()
        }
    } catch let error as NSError? {
        print("error saving core data: \(error)")
        return error
    }
    return nil
}
于 2015-11-13T14:35:48.313 回答
0

我不知道这个方法或子类,但你可以尝试使用你的错误变量的指针。

self.context?.save(&error)

于 2015-11-13T14:15:10.407 回答