0

在我的应用程序中,我有一个UITableViewController并根据用户选择实例化一个新的UIViewController并通过 tcp 套接字发送对服务器的请求。

在响应从服务器到达之前,它已经运行viewDidLoadUIViewController. 在大多数情况下,响应还没有到来。

viewDidLoad我的问题是:在收到响应并处理方法中的数据之前,如何停止运行viewDidLoad

并且如果可能的话,也可以使整个过程异步,这样在响应到达之前它不会卡住整个应用程序。

谢谢!

4

2 回答 2

0

无论您在 viewDidLoad 中进行什么数据处理,都将其移动到单独的函数中。当您从服务器通知视图控制器或调用委托接收数据时,并在收到通知或委托调用后,通过调用您为数据处理分离的方法进行数据处理。

于 2013-01-10T06:12:12.440 回答
0

首先根据我的建议,您需要从表中选择一行然后UIViewController在此类中调用您的 &,您可以编写一个单独的方法,例如

    -(void)GetData{}

然后在后台线程中调用它

    [self performSelectorInBackground:@selector(GetData) withObject:nil];

这个调用服务和获取数据的过程在后台工作,当它的响应来自服务器时,你会做一些事情,比如在视图中填充数据或显示它。

通过这样做,您的应用程序将不会静止,直到您的响应到来。

于 2013-01-10T06:45:32.780 回答