問候集體對象設計,幫助與UIScrollView中的異步人口
我新的可可和一直負責對iPhone和iPad上運行4.2原型應用程序工作。我在設計一個將數據回填到我用來填充UIScrollView的自定義對象的過程時遇到了問題。每個自定義對象顯示電影數據(藝術品,演員等),並從REST服務調用此數據。
我希望這個Movie對象負責它的渲染,因此將它的數據需要傳遞給一個單獨的對象,這個對象可以執行實際的REST調用,JSON解析等。我一直在試圖包裹我的頭圍繞使用代表或NSOperation或直接回調來提供解決方案,但我無法辨別要追求哪條途徑。
我知道我需要在後臺處理該數據,以保持UI活在主線程,但我如何來設計這些對象之間的連接掙扎:目前,我
TheaterViewController //ViewController that contains the UIScrollView
填充TheaterViewController的UIScrollView中有11個(任意分配)MovieView項目 - MovieView顯示了ActivityIndicator讓用戶知道它的工作對提供內容
MovieItem //a single movie and it's respective data
MovieView //individual View that displays a single MovieItem content
DataAgent //background-capable object that fetches data from app server
DataWarehouse //Singleton-designed class that maintains an NSMutableArray of MovieItem's
在我目前的設計中,TheaterViewController填充的UIScrollView w^ith 11個MovieView的。然後每個MovieView都會獲取它自己的數據。我知道如何讓DataAgent檢查DataWarehouse的內容,如果不存在,請致電REST服務。我不知道該怎麼做,是通知/回調/張貼到MovieView DataAgent已完成獲取數據(最好以異步方式),以便它可以呈現它的完整視圖。
任何人都可以指向一個文檔,或者做這種異步回調過程的例子嗎?
在此先感謝您的好鄉親拿出任何指針 -
阿爾曼 - 感謝您的回覆。我將把這個解決方案插入我的源代碼並查看它是如何擺脫的。我也在使用dispatch_get_global_queue()來看看基於GCD的解決方案。 – 2010-12-05 10:11:33