我在确定正确的应用程序设计模式用于最初提醒用户他们需要启用 Internet 连接时遇到了一些问题。
由于用户可以请求的数据范围广泛,我有一个需要互联网连接的 iOS 应用程序。该应用程序有几个标签栏控制器,其中有导航控制器,可根据层次结构和返回的数据引导用户浏览各种视图。所有请求都是使用 ASIHTTPRequest 异步发出的,使用 NSNotificationCenter 观察者等待中央 api 请求类完成请求或报告错误。在大多数情况下,用户至少会下载第一个请求,但我总是可以要求他们在 UIAlertView 中启用他们的连接,然后通过从堆栈中弹出其他导航控制器级别(如果不是)将它们返回到较低级别连接的。总体而言,该应用程序运行良好。
但是,如果用户要在禁用连接的情况下首先打开应用程序,我就会遇到问题。通常,在我可能测试连接是否存在之前,我的初始子视图(它们是便于创建选项卡栏/导航层次结构的 IBoutlets)会尝试加载。我不确定是否正确的方法是在我的应用程序委托中创建一个超时,然后再以某种方式加载其他内容,或者发出一个实际上不检索任何关键数据的初始测试请求(因为这似乎几乎是不可能的,或者至少从头开始完全重新初始化视图而不是它的代表是不切实际的)。
有没有人在应用程序初始化阶段使用任何简单的方法来完成此任务?我觉得我一定遗漏了一些明显的东西,因为其余的部分都非常简单。
如果有人想让我发布代码,我可以,但是我很确定这主要是一个架构问题。另外请记住,由于我的应用程序有意松散耦合的性质,我宁愿在大多数情况下使用委托的观察者。
我非常感谢您对此的任何意见。