此代码在xCode 6 beta 4上工作正常,在测试版5之后,我遇到了这个问题。
当我尝试创建ManagedObjectContext
的实例时,我将AppDelegate
设为nil。
查看下面的截图。
我在第21行遇到异常,如果您看到NSManagedObjectContext
是nil
。那么我应该如何在Swift中创建AppDelegate
的实例。
另外我注意到在Delegate方法中,ManagedObject现在是一个Lazy Var而不是var。
根据Swift文档,它表示只有在使用一次之后才会计算。所以想知道我是否需要为此声明一些内容?
参考代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
var context: NSManagedObjectContext = appDel.managedObjectContext!
var currentrequest = NSFetchRequest(entityName: "SomeEntity")
currentrequest.returnsObjectsAsFaults = false
results = context.executeFetchRequest(currentrequest, error: nil )
}
答案 0 :(得分:2)
从您发布的AppDelegate.swift代码中,我可以假设managedObjectModel
函数或xcdatamodeld文件中拼写错误的模型名称尚未添加到目标中。
正如您在对该问题的评论中所确认的那样,URL资源的拼写存在问题,无法从捆绑中获取模型。