从prepareForSegue中同时进行NSURLConnection

时间:2013-05-23 09:07:15

标签: ios objective-c nsurlconnection

我有一个UITableView,当用户点击表格的底部时,它会从服务器请求更多数据(类似于Twitter应用程序)。但是,我正在尝试使用模态segue来过滤数据以满足用户的需求。为了正确选择要过滤的数据,我必须加载所有数据以对其进行分类。为了加载所有内容,我需要发送多个NSURLConnections来加载多个页面。我试图这样做,当一个完成时,下一个开始。

但是,由于连接与connectionDidFinishLoading完成,我还没有找到一种方法从prepareForSegue内发送同步NSURLConnections。我尝试在prepareForSegue中使用while循环,如下所示:

while (All of the data is not loaded) {
    if (isLoading == NO) {
        [self loadMoreResults];
    }
}

其中“isLoading”是我的viewcontroller实现文件中声明的BOOL。 isLoading在loadMoreResults内将值更改为YES,并在NO结束时更改回connectionDidFinishLoading。但是,在prepareForSegue范围内,isLoading永远不会从YES更改回NO。

这是一个多线程问题吗?我已经对其他问题进行了研究,看到NSURLConnection有一个类方法sendAsynchronousRequest:queue:completionHandler:,其中完成处理程序可能会有所帮助,但我不确定如何使用它。

另外:我希望在上次连接完成后继续执行prepareForSegue,而不是在发送请求后立即执行。

提前致谢!

1 个答案:

答案 0 :(得分:0)

然后,您不应将segue直接从bar按钮项链接到storyboard中的视图控制器。

只需将一般segue与表视图控制器中的标识符链接到过滤器视图控制器。

在条形按钮项目中,从故事板为其创建操作,以便您可以先发送多个NSURLConnections。

最后,在您的代码中,在最后一次连接完成后,调用performSegueWithIdentifier方法。