老读者,第一次张贴在这里。
我正在创建一个测试应用程序,它创建一个 NSURLConnection,然后在 UILabel 上显示结果。
我目前正在使用通知中心观察器,它从 connectionDidFinishLoading 中触发通知以等待连接成功完成,然后再查找结果。
但是,我正在努力概念化的是在哪里存储响应数据,以便我可以从我的 View Controller 访问它并将结果发布到 UILabel。 (或者就此而言,来 self 的连接类实例以外的任何地方。)
我不想从 connectionDidFinishLoading 直接发布到 UILabel。我需要一种方法来决定稍后我将如何处理响应 - 所以我的连接类保持通用化。
我需要一种更好的方法来将响应数据保存在某处,以便在连接类的实例终止后我可以在其中引用它。
理想情况下,它应该位于某个地方,我可以打开多个连接类实例,并在需要时依次访问每个响应。这消除了仅在我的 View Controller 或其他更全局的地方创建变量并将响应转储到它的可能性。
如果能/应该在这里使用什么设计模式,我们将不胜感激!
最佳答案
我给你的建议是:
- 创建一个单例类。我将拥有一个属性 NSDictionary * info 或 NSArray *infoList;您可以从应用程序的任何位置访问相同的数据。更新属性,发布通知,从 viewController 访问属性。
- 将信息存储到 plist/文件中。序列化信息,或保存纯流。无论你喜欢什么。因此,在你完成文件写入后,发布通知,从应用程序内的任何地方读取文件。
在这两种情况下,如果您需要多个连接,我建议您使用工厂设计模式。
关于Objective-c,将 NSURLConnection 结果传递给 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369868/