Objective c 苹果iOS5和didFinishLaunchingWithOptions

Objective c 苹果iOS5和didFinishLaunchingWithOptions,objective-c,uitableview,ios4,ios5,uiapplicationdelegate,Objective C,Uitableview,Ios4,Ios5,Uiapplicationdelegate,我有一个iPhone应用程序,它使用UITableViewController在屏幕上显示表格。应用程序使用的表数据和更多数据在:didFinishLaunchingWithOptions:method of my App Delegate上初始化。 该应用程序在iOS4上运行良好。在iOS5上,不加载表的数据。 我检查并发现didFinishLaunchingWithOptions:方法现在与显示视图并行调用。因此,在获取表的大小时,我转到我的应用程序委托,它仍然没有加载表数据,因此返回0 在

我有一个iPhone应用程序,它使用UITableViewController在屏幕上显示表格。应用程序使用的表数据和更多数据在:didFinishLaunchingWithOptions:method of my App Delegate上初始化。 该应用程序在iOS4上运行良好。在iOS5上,不加载表的数据。 我检查并发现didFinishLaunchingWithOptions:方法现在与显示视图并行调用。因此,在获取表的大小时,我转到我的应用程序委托,它仍然没有加载表数据,因此返回0

在iOS 5中有没有解决这个问题的方法

以下是在我的视图中首先被调用的方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    PalmsterAppDelegate *appDelegate = (PalmsterAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSLog(@"tableView: %i", [appDelegate.listOfItems count]);
    return [appDelegate.listOfItems count];
}
调用:[appDelegate.listOfItems count]返回零。它清楚地表明事物的顺序是:

didFinishLaunchingWithOptions在方法开始时调用I print to the log。
然后调用tableView并打印零。然后didFinishLaunchingWithOptions完成我在方法末尾打印到日志中。

将初始化代码移动到应用程序委托中的单独方法中,然后从表视图控制器的-viewDidLoad方法调用该方法


请确保您只初始化一次,无论您的初始化方法被调用了多少次。

能否显示didFinishLaunchingWithOptions中的代码以及与加载表相关的代码?并行调用是什么意思?didFinishLaunchingWithOptions:在主线程上运行,与UIKit相关的任何操作(例如视图和视图控制器)都是如此,因此它们不能并行运行。当我登录时:didFinishLaunchingWithOptions和中:-NSIntegertableView:UITableView*表视图行数Section:NSIntegersection{AppDelegate*AppDelegate=AppDelegate*[[UIApplication sharedApplication]委托];NSLog@tableView:%i[appDelegate.ListoItems计数];返回[appDelegate.ListoItems计数];}这是我得到的:1 didFinishLaunchingWithOptions:start,2 tableView:0,3 didFinishLaunchingWithOptions:endGood建议。我已经尝试过:-它显示了一个空白的白色屏幕…奇怪。这在大多数情况下都会起作用。我不得不猜测你在初始化方法中做的事情是异步发生的。。。?我在viewDidLoad方法中设置了一个断点,并按照它进行操作…查看与初始化相关的NSLogs发生了什么…尝试找出初始化完成之前调用numberOfRowsInSection的原因…UITableViewController是否在主窗口中。xib?是的,它是一个UITableViewController项目。我不知道AppDelegate中的ng async。仅使用数据初始化应用程序数组。是否使用核心数据?我很困惑。我不使用核心数据。实际上这是我第一次听说。我仅使用数组和NSArray来保存我的信息。