iOS开发问题。 一个UITableView调用reload方法之前初始化数据源,然后主线程调用r 30
iOS开发问题。一个UITableView调用reload方法之前初始化数据源,然后主线程调用reload,如果连续执行100次上面的流程,那么偶尔会出现数据源错误的闪退...
iOS开发问题。
一个UITableView调用reload方法之前初始化数据源,然后主线程调用reload,如果连续执行100次上面的流程,那么偶尔会出现数据源错误的闪退问题
从日志上看在第N次初始化数据源时,在没有经过reload之前,触发了第N+1次初始化数据源,那么数据源就改变了,这时再执行第N次reload会由于数据源数量不同导致闪退
请问大神们是否有办法解决此问题?如果不将初始化数据源也放进主线程,还有没有别的办法保证数据一致性?谢谢! 展开
一个UITableView调用reload方法之前初始化数据源,然后主线程调用reload,如果连续执行100次上面的流程,那么偶尔会出现数据源错误的闪退问题
从日志上看在第N次初始化数据源时,在没有经过reload之前,触发了第N+1次初始化数据源,那么数据源就改变了,这时再执行第N次reload会由于数据源数量不同导致闪退
请问大神们是否有办法解决此问题?如果不将初始化数据源也放进主线程,还有没有别的办法保证数据一致性?谢谢! 展开
1个回答
展开全部
在UITableViewController类里添加了一个tableview1,里面刷新界面数据的函数如下
-(void)refreshView:(BOOL)flag
{
if (flag == YES)
{
[self getData:nil];
[self.tableView1 reloadData];
}
}
在B类中当数据改变时调用上边的函数
View1是上边类的实例
[View1 refreshView:flag];
这样reloadData 虽然执行了 但是界面数据并没有更新,
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-(void)refreshView:(BOOL)flag
{
if (flag == YES)
{
[self getData:nil];
[self.tableView1 reloadData];
}
}
在B类中当数据改变时调用上边的函数
View1是上边类的实例
[View1 refreshView:flag];
这样reloadData 虽然执行了 但是界面数据并没有更新,
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询