【发布时间】:2016-04-19 12:56:38
【问题描述】:
我有一个非常大的项目,我正在重构会话中。一开始我的想法对我来说听起来不错,但现在我在 git 回滚之前陷入困境和困惑。你们是我最后的机会。
我们已经完成了一个 GUI 应用程序,它显示了一些存在于 CoreData 中的数据。一个后台进程不时从网络中获取数据并将它们放入CoreData中。
所以我得到了请求的东西 -> 推入 CoreData 并
嗯,嗯。不!
我将 Kit.xcdatamodeld 放入新的库项目中。我生成所有模型并将主应用程序中的所有代码添加到库中。我解决了所有问题并开始将第一个基本测试转移到新项目中。
我将 ApplicationDelegate 中的 managedObjectModel 部分放入新项目的 DataController 中。并更改了第一次调用以使用新类中的这个 managedObject。
let dc = DataController()
_ = GlobalScope(context: dc.managedObjectContext!)
当我运行第一个应该存储简单实体的测试时,managedObjectModel 中出现错误:
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model.
let modelURL = NSBundle.mainBundle().URLForResource(" <LibName>Kit", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
fatal error: unexpectedly found nil while unwrapping an Optional value
我的问题是:是否可以将整个 CoreData 的东西放入一个框架中?我的 gui 应用程序中没有任何数据模型或请求?计划包括框架并使用我的模型的 getXY() setXY() 函数。整个网络的背景提取也应该放在框架中。 但似乎框架中没有 mainBundle 。那么如何正确获取数据库呢?
非常感谢。 ps
【问题讨论】:
-
这是框架还是静态库?
-
嘿,一个框架
-
在使用框架时要小心使用哪个包 - main bundle 将引用您的例如main abc.app,而不是其中包含的框架。在那里你可能想使用类的框架等。
标签: swift macos cocoa core-data