我正在尝试使用CoreData来保存数据,今天当我尝试测试应用程序时,我收到了消息:“致命错误:在解包可选值时意外发现nil”和EXC_BREAKPOINT消息。
class ViewController: UIViewController {
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedObjectContext: NSManagedObjectContext = appDelegate.managedObjectContext <-- Here is the error
如果我使用UIApplication.sharedApplication()。委托为! AppDelegate从AppDelegate调用任何其他函数我得到了同样的错误。 有谁知道修复它?
答案 0 :(得分:0)
在初始化期间,无法保证managedObjectContext
可用。
将viewDidLoad
声明为隐式展开的可选项,并在class ViewController: UIViewController {
var managedObjectContext: NSManagedObjectContext!
override func viewDidLoad()
{
super.viewDidLoad()
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
managedObjectContext = appDelegate.managedObjectContext
}
}
lazy var managedObjectContext : NSManagedObjectContext = {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
return appDelegate.managedObjectContext
}()
或者将该变量声明为在类的顶层初始化为lazy。
name_list