上下文?.save(nil)出现错误

时间:2015-09-05 13:34:06

标签: ios swift2 xcode7

如果在上下文中出现以下错误,请使用Xcode 7和swift 2.0?.save(nil)。

感谢任何帮助

"不能在类型' NSManagedObjectContext'

的非可选值上使用可选链接
func newItem() {
    let context = self.context
    let ent = NSEntityDescription.entityForName("CallList", inManagedObjectContext: context)

    let nItem = CallList(entity: ent!, insertIntoManagedObjectContext: context)

    nItem.firstname = firstName.text
    nItem.lastname = lastName.text
    nItem.phonenumber = phoneNumber.text
    context?.save(nil)

1 个答案:

答案 0 :(得分:5)

您收到该错误,因为context变量不是可选的,因此?无用。

同样,swift 2引入了do-catch构造以允许高级错误处理,就像使用try-catch的其他语言一样,因此具有错误参数的函数,例如save() {{1}已更改并丢失了错误参数并将错误报告为异常;你应该这样做

NSManagedObjectContext

如果您不想处理错误,可以

do {
    try context.save()
} catch let error {
    // Handle error stored in *error* here
}