我正在尝试使用 CoreData 来保存数据,今天当我尝试测试应用程序时,我收到消息:“ fatal error :在展开可选值时意外发现 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().delegate 作为! AppDelegate 从 AppDelegate 调用任何其他函数我得到同样的错误。 有人知道解决办法吗?
最佳答案
在初始化期间,不保证AppDelegate
可用。
将 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
}()
关于swift - UIApplication.sharedApplication().delegate as! AppDelegate EXC_BREAKPOINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611208/