2010-03-28 125 views
2

我有一个应用程序必须从Sqlite数据库中获取数据才能向用户显示第一个元素。iphone线程加速启动应用程序

我已经创建了一个包装数据库访问的域对象,并且是一个线程安全的单例。

这是以下策略最优,以确保线程应用程序给出的iPhone的文件访问和存储管理功能,最快的负载:

1)在AppDelegate中的FinishedLaunching事件中,我做的第一件事就是内创建域单一个新的线程。这将导致域对象转到Sqlite并获取它所需的数据而不锁定UI线程。

2)然后我调用标准的窗方法来添加视图和MakeKeyAndVisible等

有没有在AppDelegate中较早的阶段我应该在哪里断火创建域对象和访问sqlite的线程?

回答

1

呵呵,你可以一路回到应用程序的执行入口点,并在调用UIApplicationMain之前创建自己的线程......这太过分了。

applicationDidFinishLaunching是做这件事的最好的地方,如果你担心快速加载,更好的方法是将数据缓存在plist或NSUserDefaults中,然后在数据库准备就绪后将其更新为几百毫秒。