2012-04-29 74 views
3

长时间阅读,第一次在这里发布海报。Objective-c,将NSURLConnection结果传递给View Controller

我创建了一个测试应用程序,创建一个NSURLConnection,然后在UILabel上显示结果。

我目前使用的通知中心观测,这触发从内connectionDidFinishLoading通知等待连接成功完成,在我寻找的结果。

不过,我很努力构思是在哪里存储响应数据,这样我可以从我的浏览器访问它,并张贴结果到的UILabel。 (或从比我的连接类的一个实例,其他任何地方,对于这个问题)。

我不想直接张贴到的UILabel从connectionDidFinishLoading。我需要一种方式来决定我将如何处理响应 - 所以我的连接类保持通用。

我需要一个更好的方法来保存响应数据的某个地方,我可以在连接类的实例终止后引用它。

理想情况下,它应该在某个地方可以打开Connection Class的多个实例,并依次访问每个响应,因为我需要它们。这消除了在我的View Controller或其他更全局的地方创建一个变量并将响应转储给它的可能性。

有关设计模式可以/应该在这里使用的任何想法将不胜感激!

+0

NSMutableDictionary,NSMutableArray是主存储选项。但这取决于你存储的数据。对于我们的参考,一些复杂的体系结构应用程序使用核心数据与sqlite结合存储数据。 – 2012-04-29 05:22:27

+2

尝试在NSNotification的'userInfo'字典中设置它! – 2012-04-29 05:40:32

+0

@ H2CO3 - 'userInfo'完美运行,我不知道我错过了这个功能。谢谢! – itnAAnti 2012-04-29 16:40:49

回答

1

我对你的建议,开始有:

  1. 做一个单例类。我将有一个属性NSDictionary * info或NSArray * infoList;您将可以访问来自应用程序的相同数据。更新属性,发布通知,从viewController访问属性。
  2. 将信息存储到plist/file中。序列化信息,或保存普通的流。无论你喜欢什么。因此,当你完成写入文件后,发布通知,从应用程序内的任何地方的文件中读取。

在这两种情况下,如果你想要多个连接,我建议去工厂设计模式。

+0

正如我在我上面的评论中指出的,对于这个测试应用程序,我使用'userInfo'(我以前不知道)。不过,一旦我扩展了功能,我可能会转向单体类建议 - 这样我可以添加更多的自定义逻辑。 – itnAAnti 2012-04-29 16:43:18

相关问题