2009-10-06 49 views
1

我有這個簡單的場景:怎麼可以(void)connectionDidFinishLoading返回什麼?

  • main.m文件(這是我的主類)
  • myClass.m(這是一個附加的類)

在我的計劃應該發生的事這樣

(在main.m文件)

myClass *foo = [[myClass alloc] init]; 
NSArray *array = [foo returnAnArray]; 

什麼myClass會打開一個新的NSURLConnection,檢索一些數據並在它準備好時解析它並返回一個數組。

要返回數組與所分析的數據我寫了這個簡單的

(NSArray *) returnArray:(NSString *)dataDownloadedFromWeb 

爲了知道當數據實際上已完成下載和何時開始解析它,我使用

- (void) connectionDidFinishDownloading: (NSURLConnection *connection) 

但是,如果connectionDidFinishLoading爲VOID,我可以撥打returnArray:? :(

我希望這是有道理的......我真的被卡住,我似乎無法找到一個解決辦法。我試圖與NSNotification,但它似乎沒有任何工作。

謝謝大家了支持! 恩里科

回答

0

您需要實現connectionDidFinishDownloading自己。你需要在創建它來創建你傳遞給NSURLConnection的委託對象。的委託對象需要實現connectionDidFinishDownloading。

的NSURLConnection的將隨後致電connectionDidFinishDownloading上 您的委託對象在合適的時間。

有進一步的信息here

+0

就是這樣! :)代表是要走的路,我從一開始就有了這個懷疑態度...... 感謝你的幫助,真的,你讓我的一天。 仍然有很多東西需要學習Objective-C ... – 2009-10-06 22:54:33

1

想必你的意思 - (void)connectionDidFinishLoading:(NSURLConnection *)connection

反正你不等待,直到它已經完成 - 您分析數據時,它準備在 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

  • connectionDidFinishLoading:是讓你知道,有不會是再降臨到你的數據。
+0

+1正如Tom和jib指出的那樣,您需要自己實現這些委託方法以在過程的各個階段獲得回調。 – gavinb 2009-10-06 11:24:42

相關問題