重载TableView后,为什么会崩溃UISearchBar

时间:2014-01-20 07:16:22

标签: ios iphone objective-c uitableview objective-c-blocks

我有UISearchBarDisplayController的tableView。下面的代码是从webserver获取记录并显示tableview单元格,每个工作正常。但是当我将向下和向上滚动3或5次时,我将点击搜索栏,它将崩溃崩溃报告NSLog不会打印任何内容。

记得我尝试NSZombie,突破点,异常点等,但没有任何帮助。

重要问题:

如何从网络服务器获取数据后将数据加载到tableview。因为在从服务器获取数据之前调用tableview委托方法。

 DataFetchController *getDataFetch=[[DataFetchController alloc]init];
    //getleadFetch.delegate=self;
    [getDataFetch beginTaskWithCallbackBlock:^(NSArray *mm){


        [self.tableView reloadData];//if i comment this line the UISearchBar not crashes 


    }];

2 个答案:

答案 0 :(得分:0)

在数据提取完成之前加载tableview显然会导致崩溃。 因此,为了避免这种情况,我们需要知道数据提取何时完成。 这可以从你的sql apis轻松获得,它在fetch完成时返回错误代码。您可以通过它来查明提取是否完成。因此,您可以按顺序提供表视图命令的重新加载。 希望它有所帮助!!

答案 1 :(得分:0)

更新主线程中的tableview数据,不会崩溃。

dispatch_async(dispatch_get_main_queue(), ^{

        [self.tableView reloadData];

    });