2013-01-16 51 views
0

我正在寫一個類,它檢索並解析從服務器下載的文件。等待條件繼續方法之前

我有一個解析信息的類中的方法,並且在初始化類時下載信息。

問題是,在信息本身下載之前,有時會調用解析信息的方法。

FileParser *instance = [[FileParser alloc] initWithURL:@"somewhere"]; 
[instance parseData]; 

每次類初始化後的parseData方法直接調用,它失敗,因爲不是所有的內容都是可用的。

在繼續執行parseData方法之前,如何在不中斷主線程的情況下等待所有信息被下載?

任何幫助表示讚賞。

+0

看一看['NSOperation'](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&ie=UTF-8#hl=en&tbo=d&spell=1&q=nsoperationqueue+實施例&SA = X&EI = Lmz2ULOODcjLsgb104GIDA&VED = 0CC4QBSgA&BAV = on.2,or.r_gc.r_pw.r_cp.r_qf。&FP = 65fe59e85b7b1b3b&BIW = 1505&波黑= 867&離子= 1)。它基本上允許您在後臺隊列中執行多個操作,並且還支持操作依賴性。 – Alladinian

回答

-1

你應該考慮使用代表。 您將您的下載類傳遞給將處理下載的數據的委託。 見here

0

簡單:您需要在後臺線程/隊列上執行整個操作,或者重構您的類以實現更異步的設計。該設計將以回調機制爲中心,如委託或塊。