【问题标题】:context?.save(nil) coming up with errorcontext?.save(nil) 出现错误
【发布时间】:2016-01-01 02:41:28
【问题描述】:

如果在上下文中出现以下错误,请使用 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)

【问题讨论】:

    标签: ios swift2 xcode7


    【解决方案1】:

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

    另外,swift 2 引入了do-catch 构造,以允许高级错误处理,就像您在其他语言中使用try-catch 所做的那样,因此具有错误参数的函数(例如NSManagedObjectContextsave())发生了更改并丢失了错误参数和报告错误作为异常;所以你应该这样做

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

    如果你不想处理错误,你可以做

    do {
        try context.save()
    } catch {}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2021-10-20
      • 2016-03-30
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多