我正在使用具有以下配置的MainWindow.xib文件:
的MainWindow.xib
但基于以下帖子: Why does Core Data initialization fail when I attempt to do it at these points? 以及我放置的断点,我得出的结论是initWithCoder用于初始化所有UITableViewControllers,并且在应用程序生命周期中无法可靠地使用managedObjectContext。
这是否意味着我必须抛弃我在MainWindow.xib中执行的所有“简单”设计工作和布局并以编程方式执行?使用核心数据真的意味着无法使用NIB文件吗?还是有一些中间立场?
请告诉我,谢谢!
答案 0 :(得分:0)
将Core Data,表视图和NIB一起使用没有问题。我认为您需要从MOC中获取一些用于表视图的对象,并且在您需要时找到MOC时遇到问题。
这种方法对我有用:
managedObjectContext
applicationDidFinishLaunching:
属性
viewDidLoad
所以,先试试这个:
applicationDidFinishLaunching:
viewDidLoad
而不是initWithCoder
中进行抓取。如果这不起作用,您仍然至少有以下选项:
在applicationDidFinishLaunching:
中设置控制器的managedObjectContext,但在调用数据源方法之前不要获取数据。在这些方法中,如果尚未完成提取,则有条件地完成提取。
在你的控制器上写一个类似loadDataFromMOC:
的方法,它既设置MOC又从中取出,并从applicationDidFinishLaunching:
调用它。