子视图不是立即添加(iphone)
问题描述:
当键盘上的文本框的返回按钮被点击时我想添加一个UIView,然后连接到一个网站NSURlConnection sendsynchronousrequest
,我的代码依次为 但是当我运行在模拟器中(我不能在设备上运行)连接先运行,然后添加子视图(即与代码顺序相反) 为什么这样以及如何停止它,因为我希望视图添加,然后完成连接,然后删除视图。子视图不是立即添加(iphone)
答
正在添加子视图,但视图是由runloop绘制的。通过在主线程上发出同步请求,您将阻塞runloop,因此只有在请求完成后才会绘制视图。通过使用异步API或在后台线程中执行同步请求,异步执行请求。
答
许多操作发生在运行循环上,而不是按照您编写的顺序。如果您确实想要按照您的方式进行编码,请执行选择器:withObject:afterDelay:延迟为0 可能会触发您的NSURlConnection(您需要将该代码移至某个方法)。
正如JK所示,异步请求可能会解决它,并改进UI。我是ASIHPPTRequest库的忠实粉丝,这使得异步微不足道。
你为什么使用同步请求? – RunLoop 2010-05-14 06:55:47