【问题标题】:Synchonous Vs Asynchronous Calling in iOS AppiOS 应用程序中的同步与异步调用
【发布时间】:2012-01-04 12:05:35
【问题描述】:

在 Apple 的网站上,他们说: “由于此调用可能需要几分钟才能失败(尤其是在 iOS 中使用蜂窝网络时),因此您永远不应从 GUI 应用程序的主线程调用此函数。”

在我的例子中,应用程序在调用 WebService 和返回的响应之间没有任何事情(字面上没有)可做。 (没有其他活动我的应用程序可以在按照规范之间执行。

我该怎么办?

有什么理由(根据情况)可以说服-我应该去异步调用WebService。

任何建议,因为我不是很熟悉???

【问题讨论】:

    标签: ios asynchronous nsurlconnection nsurlrequest synchronous


    【解决方案1】:

    您应该始终使用异步调用 - 否则您会因为阻塞主线程而冻结应用的整个 UI。

    换句话说:在处理请求时,用户的手机将被屏蔽。

    【讨论】:

    • 那段时间我不能使用ActivityIndi​​catorView吗?
    • 这与任何特定视图无关 - 您只是阻止了 UI 的呈现。如果您的应用处于此状态的时间过长,系统将发出警告并最终因无响应而终止您的应用。
    • 但是如果下一个视图(要加载)是根据对调用的响应创建的。我的意思是,异步调用会立即加载下一个视图(全部为空白)。那我该怎么办(除了再次重新加载视图)?
    • 当您从异步调用中获得响应时创建您的 nextView。它特别有用,当您将 ASIHTTPRequest 与块一起使用时,请参阅:来自 ASIHTTPRequest 库的allseeing-i.com/ASIHTTPRequest/How-to-use#using_blocks
    • @codeCube 在此期间您无法使用 ActivityIndi​​catorView,因为 UI 已锁定。 (根据您的操作方式,最好的情况是它出现但没有动画。)
    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多