gpt4 book ai didi

core-data - 解包可选值时意外发现 nil - Swift

转载 作者:行者123 更新时间:2023-11-30 10:21:09 25 4
gpt4 key购买 nike

我收到此错误: fatal error :在解包可选值时意外发现 nil
在此函数中:

   func textFieldShouldReturn(textField: UITextField) -> Bool {

tableViewData.append(textField.text)
textField.text = ""
self.tableView.reloadData()
textField.resignFirstResponder()

// Reference to our app delegate

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate

// Reference moc

let contxt: NSManagedObjectContext = appDel.managedObjectContext!
let en = NSEntityDescription.entityForName("note", inManagedObjectContext: contxt)

// Create instance of pur data model an initialize

var newNote = Model(entity: en!, insertIntoManagedObjectContext: contxt)

// Map our properties

newNote.note = textField.text

// Save our context

contxt.save(nil)
println(newNote)

// navigate back to root vc

//self.navigationController?.popToRootViewControllerAnimated(true)

return true
}

这行代码:

 var newNote = Model(entity: en!, insertIntoManagedObjectContext: contxt)

有人能解决这个错误吗?我使用 xCode 6.0.1。编程语言为 Swift,模拟器在 iOS8 (iPhone 5s) 上运行。

最佳答案

NSEntityDescription.entityForName("note", inManagedObjectContext: contxt) 返回一个 NSEntityDescription?。所以它是可选的并且可以是nil。当您强制打开它(使用 ! 运算符)时,如果它是 nil 那么您的程序就会崩溃。为了避免这种情况,您可以使用 if-let 语法。方法如下:

if let entity = NSEntityDescription.entityForName("note", inManagedObjectContext: contxt) {
// Do your stuff in here with entity. It is not nil.
}

然而,在核心数据中,实体变为nil的原因可能是您将名称“note”拼写错误。检查您的 xcdatamodel 文件。

关于core-data - 解包可选值时意外发现 nil - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26449843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com