iphone:如何在awakeFromNib方法之后的应用程序加载的特定时间预加载数据

时间:2009-11-23 13:17:06

标签: iphone sqlite uitableview preload

在我的(非常简单的)应用程序中,

- >我在启动时在主视图中加载了一个子视图(名为“Splash”),就像这样(在我的mainView类中):

-(void)awakeFromNib{
 [self addSubview:splash];
}

- >我还通过在子视图“splash”中单击一个按钮(它调用名为“LoadData:”的IBAction)来加载UITableView(名为“myTable”)。 (所有视图都在interfaceBuilder中创建,每个视图在xCode项目中都有相应的类)

我想要做的是在加载第二个subView(“myTable”)之前从SQLite数据库预加载(缓存)大量数据(750个条目),这是使用存储在数组中的数据。 / p>

为了执行此操作,我有一个名为“RefreshData:”的方法,该方法在某个时间被调用以将结果存储在数组中。 此数组在UITableView中用于显示此数据。 一切都运行得很好,但是......

  • 如果我在“mainView”类的“awakeFromNib”方法结束时调用“RefreshData”方法,我的应用程序需要大约15秒才能显示第一个屏幕(名为“splash”):不好。
  • 如果我在IBAction“LoadData”中调用“RefreshData”,UITableView需要大约13秒才会出现在屏幕上:不是很好。

所以,问题是: 有没有办法在第一个subView(“splash”)出现在屏幕上之后调用“RefreshData”方法,并且在用户点击加载UITableView的按钮之前?

任何帮助将不胜感激,请为我糟糕的英语道歉!

1 个答案:

答案 0 :(得分:0)

稍后尝试调用refreshData,即

-(void) viewDidAppear:

此外,如果SQL请求锁定了GUI,您应该考虑在新线程中关闭数据(尽管我认为SQL会这样做)