首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苹果的Reachability框架的真正必要性是什么?

苹果的Reachability框架的真正必要性是什么?
EN

Stack Overflow用户
提问于 2012-08-24 12:50:49
回答 1查看 577关注 0票数 1

我已经阅读了Reachability框架,并且仍然不明白为什么可以访问主机的定义是“当数据包.可以离开本地设备时”。

如果可达性返回“是”,那么我似乎仍然需要尝试并建立一个套接字连接,直到真正连接为止,我并不知道我的主机已经打开。为什么Reachability不使用Ping来更好地了解主机是否真的在运行呢?首先,这个框架有什么必要?

我猜是这两个,但是如果有人知道使用Reachability框架的其他原因,请告诉我。

1) Reachability给出了一个回调,它在互联网恢复时立即发出通知。当发生这种情况时,可以立即尝试套接字连接。然而,在99%的应用程序中,每隔几秒钟尝试一次套接字连接似乎是可以接受的,或者最糟糕的情况是,在用户执行特定操作时尝试连接。当然,这不是一个理想的解决方案,但我不明白为什么Reachability框架会因为这个原因而变得非常必要。

2)即使在与服务器进行套接字连接的情况下,Reachability也提供了关于网络是否为G3/WiFi的重要信息。我认为这是唯一真正需要Reachability的时候,因为它允许根据网络类型对行为进行优化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-24 13:00:29

可达性实际上是非常有用的:考虑到您的情况(1),您忘记了它为您提供了网络向上和向下事件的通知。这意味着您可以将回调设置为处理诸如网络连接丢失等事件(这比您在WiFi和3G上所希望的要多)。

此外,使用套接字测试连接并不那么简单;默认情况下,套接字操作是阻塞的,尽管可以使用异步操作(或线程),但这样做需要编写代码。更别提在网络瘫痪时尝试DNS,以及其他类似的问题。通过使用框架设置可达目标,您可以减轻自己处理各种问题的需要,只需等待回调。

希望这能帮上忙

热重

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12109743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档