Swift 2 - 参数传递给不带参数的调用

时间:2015-11-13 14:12:37

标签: ios swift swift2 swift2.1

我试图在我的Model类上调用save函数,但是即使它适用于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?'

3 个答案:

答案 0 :(得分:2)

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

将其更改为

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

答案 1 :(得分: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
}

答案 2 :(得分:0)

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

self.context?.save(&error)