【发布时间】:2013-10-08 16:48:18
【问题描述】:
我第一次创建了一个核心数据应用程序。它运行良好。我使用 Web 服务(使用 AFNetworking)使用数据创建了所有对象。我的物件都建好了。 所以,现在我想知道预加载数据的最佳方式是什么。 (网络服务>核心数据>我的观点) 就目前而言,它很简单,但绝对不是用户友好的,就是这样:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[ManagedMember loadDataFromWebService];
[ManagedLesson loadDataFromWebService];
[ManagedThematic loadDataFromWebService];
[ManagedNew loadDataFromWebService];
[ManagedProject loadDataFromWebService];
return YES;
}
loadDataFromWebService 是一个调用两个连续函数的函数。 (删除核心数据对象中的所有数据并重新创建运行良好的对象)
所以,我想知道在哪里可以调用这 5 个函数?是否可以像许多 iOS 应用程序一样在启动画面中有加载程序?或者创建一个加载数据的中间视图。
非常感谢。
【问题讨论】:
-
您不能在“didFinishLaunchingWithOptions”方法中预加载数据,我认为您应该将该代码放在 rootviewcontroller 的“viewDidLoad”方法中。
-
是的,我试过了,但每次进入视图时它都会重新加载数据。
-
您可以在 viewDidLoad (或其他方法)中执行此操作,但您需要设置一个标志,以便它不会再次尝试加载数据。如果此数据在第一次加载期间仅加载一次,请在 NSUserDefaults 中设置一个标志。否则,如果每次打开应用都会调用一次,只需设置一个 BOOL 并检查它以确保它不会再次被调用。
标签: iphone ios core-data view load