2009-10-26 88 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:消息,然後設置第二個圖像嗎?