6

有谁知道 Apple 的 iOS 'Reachability' 示例代码的 2.2 版(最新)是否可以在 iOS 3.0 上运行?我想支持 iOS 3.0,Reachability.h 和 .m 是我在我的应用程序中使用的第一个非框架代码。在我自己的代码中,我通常阅读我使用的所有方法的文档,并使用 respondsToSelector: 来实现不会在 3.0 上运行的方法。当人们使用第三方代码时,他们如何在不根据文档单独检查每种方法的情况下确认它支持哪个 iOS?

或者,有谁知道我如何获得旧版本的示例代码?(可达性 2.1 版可能会有所帮助。)

4

1 回答 1

1

我并不是要从@Matt 和@Martin 那里得到答案,但我觉得这个问题值得为后人解答。如果他们回来并发表他们的评论作为答案,请随时接受。

无论如何,我自己的回答是,我强烈建议不要在生产应用程序中直接使用 Apple 示例项目,尤其是 Reachability。他们的许多示例都写得很糟糕,而且正如您所注意到的,它们已经过时了。我已经针对他们提出了很多错误,但没有很多结果。

也就是说,另一点是你真的应该三思而后行依靠可达性来控制逻辑。如果您只想在用户的连接发生变化或其他情况时通知用户,可以。但是不要依赖 Reachability 所说的来决定是否尝试与网络通信。您的网络状态通常是错误的。只需打开一个连接,如果它成功就很好,否则你会得到一个错误响应,让你知道没有连接。

编辑 - 关于您关于如何判断第三方应用程序支持什么 IOS 的其他问题。答案是,除非他们记录在案,否则您可能无法做到。最好的指标通常是查看构建目标的“Base SDK”和“iOS 部署目标”设置。Base SDK 将是他们构建的最新 iOS 版本,而 Deployment Target 将是他们支持的最早 iOS 版本。

干杯

于 2011-04-18T15:20:26.667 回答