context?.save(nil) 出现错误
context?.save(nil) coming up with error
使用 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)
你得到这个错误是因为你的 context
变量不是可选的,所以 ?
是无用的。
还 swift 2 引入了 do-catch
构造以允许高级错误处理,就像您在其他语言中使用 try-catch
所做的那样,因此函数带有错误参数,例如 [=16] =] of NSManagedObjectContext
更改并丢失错误参数并报告错误为异常;所以你应该这样做
do {
try context.save()
} catch let error {
// Handle error stored in *error* here
}
如果您不想处理错误,您可以这样做
do {
try context.save()
} catch {}
使用 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)
你得到这个错误是因为你的 context
变量不是可选的,所以 ?
是无用的。
还 swift 2 引入了 do-catch
构造以允许高级错误处理,就像您在其他语言中使用 try-catch
所做的那样,因此函数带有错误参数,例如 [=16] =] of NSManagedObjectContext
更改并丢失错误参数并报告错误为异常;所以你应该这样做
do {
try context.save()
} catch let error {
// Handle error stored in *error* here
}
如果您不想处理错误,您可以这样做
do {
try context.save()
} catch {}