2009-10-26 87 views
0

嘿所有创建的,这里的交易...指针指向的UIImage通过NSURLConnection的

我有一个正在通过一个子类UIImageView内的NSURLConnection加载在后台UIImage。在数据完成下载之前,会显示一个占位符图像。 UIImage需要由另一个单独的UIImageView使用。

我遇到的问题是,如果我设置第二UIImageViewimage属性的子类对象之前下载完成,第二UIImageView永远不会显示下载的图像,因为它的image道具指向占位符。

有无论如何传递指向这两个UIImageViews之间的指针的指针吗?

我已经试过这样的事情:

imageView2.image = &[imageView1 image]; 
imageView2.image = *[imageView1 image]; 

但这些似乎并没有工作。有任何想法吗?

回答

2

这些指针看起来特别粗糙。这样做的问题在于,即使您可能正在更新这些指针指向的数据,您也不会通知您的子类数据已更改,因此它们不知道要重绘。

而不是使用那个指针混乱玩,为什么不用Key-Value Observing来代替?如果你有一个单独的线程运行下载UIImage,你可以告诉你的UIImageViews观察这个属性,当你的下载器类完成下载所有的数据并把它放到属性中时,视图会得到一个通知,并且可以然后显示图像。

+1

当数据完成下载时,您还可以使用NSNotificationCenter发布通知。这使您无需设置委托或对观察者保留任何其他类型的参考。 – 2009-10-26 22:42:42

+0

增加了一个难题...两个UIImageView完全不知道对方。创建下载器子类的UIViewController还创建另一个包含第二个UIViewController的视图控制器。这也是通过一个for循环多次完成的,并且传递一组图像。我试图简化案例。无论如何。我要研究通知和观察。 – Brad 2009-10-26 22:52:09

+0

如果视图彼此不知道,那也没关系。他们都在寻找下载器类的通知(KVO或其他),而不是彼此。他们将仍然与这个解决方案解耦。 – 2009-10-26 22:53:20

0

难道你不能抓住NSURLConnection的connectionDidFinishLoading:消息,然后设置第二个图像吗?