-1

我是 Objective-C/iOS 的初学者,我有一个简单的问题。

我的程序与服务器端交互,我GCDAsyncSocket用于异步通信。

我想知道,假设用户正在打开我的状态视图控制器,这会导致对服务器的请求,但在响应到达之前,他已经移动到不同的视图!

处理这种情况的正确方法是什么?

谢谢!

4

2 回答 2

1

理想情况下,您不应该移动到下一个视图控制器,直到您在 didReceiveData 回调中获得响应,因为您的 GCDAsyncSocket 委托必须设置为某个控制器,并且您可能默认将其设置为状态视图控制器。

所以你必须等待回调响应,在收到它后你可以移动到下一个视图控制器。

虽然代理可以设置为下一个视图控制器,但作为 iOS 初学者,您现在可以跳过它。

于 2013-09-06T19:25:02.817 回答
0

这是关键。

异步

您正在使用异步请求来获取数据。您必须使用回调让视图控制器知道请求已结束。我从未使用过该库,但快速浏览自述文件​​说:

Classic delegate-style support.
All of the following result in calls to your delegate method: connections, accepts, read     completions, write completions, progress, 

https://github.com/robbiehanson/CocoaAsyncSocket/blob/master/README.markdown https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Reference_GCDAsyncSocket

于 2013-09-06T19:20:34.620 回答