Iphone 与iOS 3.0兼容的最新可达性.m(示例代码版本2.2)?

Iphone 与iOS 3.0兼容的最新可达性.m(示例代码版本2.2)?,iphone,cocoa-touch,networking,reachability,ios3.0,Iphone,Cocoa Touch,Networking,Reachability,Ios3.0,有人知道苹果iOS“可达性”示例代码的2.2版(最新版本)是否会在iOS 3.0上运行吗? 我想支持iOS 3.0,可访问性.h和.m是我在应用程序中使用的第一个非框架代码。在我自己的代码中,我通常阅读我使用的所有方法的文档,并使用respondsToSelector:来实现不会在3.0上运行的方法。 当人们使用第三方代码时,他们如何确认它支持哪些iOS,而不需要根据文档单独检查每个方法 或者,是否有人知道如何获得示例代码的旧版本?(可达性版本2.1可能会有所帮助。)我并不想从@Matt和@Ma

有人知道苹果iOS“可达性”示例代码的2.2版(最新版本)是否会在iOS 3.0上运行吗? 我想支持iOS 3.0,可访问性.h和.m是我在应用程序中使用的第一个非框架代码。在我自己的代码中,我通常阅读我使用的所有方法的文档,并使用respondsToSelector:来实现不会在3.0上运行的方法。 当人们使用第三方代码时,他们如何确认它支持哪些iOS,而不需要根据文档单独检查每个方法


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

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

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

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

编辑-关于如何告知第三方应用程序支持哪些IOS的其他问题。答案是,除非他们记录在案,否则你可能无法做到。最佳指标通常是查看构建目标的“基本SDK”和“iOS部署目标”设置。基本SDK将是他们构建的最新iOS版本,部署目标将是他们支持的最早iOS版本


干杯

我在iOS 3.1上成功地使用了可达性,直到Xcode 4。它在Xcode 4下失败,但这可能是代码生成问题。不过,我不知道iOS 3.0;我建议你试试看。也就是说,可达性是我在iOS上见过的最难看的代码之一,它调用的核心框架使用起来非常简单。复制大IF,你就快完成了。我最近不得不为运行最新版本OSX的Mac应用程序使用可达性,并通过所有可达性来提取我需要的东西。这不是一项困难的任务。谢谢你们的建议。我回顾了可达性示例代码及其方法,但它有点凌乱,而且对于我试图实现的目标来说过于苛刻。最后,我使用NSURLConnection尝试连接到主机,然后侦听页面加载或失败的回调。使用NSURLConnection,我能够继续支持iOS 3.0(也=)。我使用的是,这是Apple实现的改进版本,具有更多功能。感谢Doug的回答。我放弃了可达性,转而采用NSURLConnection试错解决方案。更清晰,而且我不必使用凌乱的可达性代码示例。@Matt-很酷,很高兴听到这个消息。这绝对是一个更好的方法。只是想支持“不提供可访问性”和“小心使用示例项目代码”的观点。FWIW,在我意识到我不需要用苹果的方式(新手,c'est moi)之前,我确实在一个新项目中实现了可达性。这对我来说显然是不雅的,很难理解。