我正在尝试将CoreData与UIManagedDocument
一起使用,我知道它需要一段时间才能准备就绪,而且我也知道它会在准备就绪时触发通知。我想在准备就绪时显示应用程序,这样做是否方便?
初始化UIManagedDocument
并等待它准备就绪的标准方法(时间和方式)是什么?
从一开始就显示数据的应用程序会发生什么?
答案 0 :(得分:3)
Apple建议您侦听UIDocumentStateChangedNotification以对文档的状态更改做出反应。这包括文档打开并准备好继续的时间,以及在保存文档时出错时要执行的步骤。
虽然这是关于基于文档的应用程序,但它也适用于UIManagedDocument。
请参阅Document-Based App Programming Guide for iOS。
为什么我个人赞成这种方法是因为它允许我根据文档状态调整UI。它允许我根据多个文档的组合状态做出反应。与完成处理程序相比更棘手的事情。
答案 1 :(得分:1)
用于创建和打开UIManagedDocument的两个接口都有一个回调块。
我建议在完成处理程序运行之前设置一个未设置的文档属性。这样你就可以确定该文件已经打开并准备就绪。
我会在没有数据的情况下显示应用程序,并在准备就绪时让open / fetch对数据进行排卵。
如果我在启动应用程序时执行此操作,我会继续加载应用程序,当数据准备就绪时,它会填充视图...但只能加载足够的内容才能开始,其余的获取发生在后台。
打开文件不应该花费很长时间......耗时的部分就是加载数据。如果必须,您可以在启动时显示启动画面。 Apple的东西显示的图像类似于空白的应用程序...看看iTunesU在启动时如何显示空白书柜,然后用你的东西填充它。
有些人在开始时会播放一个开场剪辑场景几秒钟,这掩盖了启动顺序。我想这可能是合适的,取决于你的应用程序。这在图形导向游戏中似乎更容易接受。