Objective c UITableView numberOfRowsInSection在IOS8上工作正常,但在IOS7上有奇怪的行为

Objective c UITableView numberOfRowsInSection在IOS8上工作正常,但在IOS7上有奇怪的行为,objective-c,Objective C,我为IOS8和IOS7创建了一个应用程序,但我发现了一个问题,我在sqlite DB上存储了一些信息,当用户打开包含UITableView的特定UIViewController时,我需要显示这些信息。问题在于,当用户进入UIViewController时,会触发tableView方法: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return numP

我为IOS8和IOS7创建了一个应用程序,但我发现了一个问题,我在sqlite DB上存储了一些信息,当用户打开包含UITableView的特定UIViewController时,我需要显示这些信息。问题在于,当用户进入UIViewController时,会触发tableView方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return numProdotti; //this is the number of rows in my local DB, initially is 0
}
我计算数据库中的行数,在IOS8上,
numberOfRowsInSection
再次被激发,但在IOS7上没有,所以我只得到一个空的UITableView


我缺少什么?

UITableView
将计算
viewDidLoad
方法上的行。这发生在你有机会自己计算之前。因此,一旦有了它们,就需要按照注释部分的建议调用
reloadData
。在iOS7和ios8之间,行为发生了奇怪且非常轻微的变化

您应该在
viewdiload
中计算行数,显然我是在viewdiload上计算的,但是numberOfRowsInSection在计算行数之前会被调用,只需在计算行数之后在tableView上调用reloadData即可。是的,谢谢,调用reloadData很有效。但我仍然不明白为什么IOS7和IOS8之间会有这样的区别