异步请求目标c

Raj*_*kar 1 iphone objective-c

嗨,我正在为我的客户开发一个短信应用程序.到目前为止,我已经制定了这个计划.

1)应用程序使用异步请求继续轮询服务器,以便它不会干扰用户界面.

2)发送短信我目前正在使用同步请求,根据服务器的回复,我做了各种各样的事情.我正在显示旋转圈并让用户等到我从服务器得到响应.

我的客户在第2点遇到问题.

客户端说,一旦点击发送短信按钮,它就必须返回到主屏幕,并且应该能够导航到任何屏幕并执行应用程序提供的所有其他内容.我可以使用异步请求,但我不知道当我在不同的视图控制器上而不是从一个请求调用时,如何处理来自服务器的响应.

有人可以帮我这个.

谢谢.

Gor*_*tch 6

处理异步操作响应的经典方法是使用委派或通知.不要使用单身人士.这打破了不同视图控制器的模块化和分离.

如何处理异步操作的路线图

  1. 注册异步操作的响应.这可以是将请求对象的委托设置为例如NSURLConnection通常self在该上下文中的视图控制器.其他可能性是您注册请求对象触发的通知,如果发生了事情,例如下载完成或发生错误.
  2. 实施委托方法或通知以更新模型和/或用户界面.请注意,更新UI必须在主线程上进行.
  3. 启动异步操作.后台发生的是生成单独的线程或使用GCD调度操作.这些是实施细节,不打扰你.
  4. 等待答案,这将导致您执行一个已实现的方法,然后您可以使用它来更新已更改的内容.

通知和代表之间的区别

委托和通知之间的两个区别是委托是委托和委托对象之间的一对一连接.通知在应用程序范围内发布,可以根据需要通过创建一对多连接的任意对象来观察.把它想象成一个广播.第二个主要区别是委托可用于将信息从委托传递回委托对象.意味着委托对象向代表询问某些信息.典型的例子是a的数据源UITableView.然而,通知是一条单行道.信息从发布对象流向观察对象.这是有道理的,因为考虑一下您将拥有多个观察者的情况,并且每个观察者都会向发布对象提供反馈.哪一个是正确的?

在您的情况下,您将不得不查找异步HTTP请求对象的委托方法并相应地实现它们.