2011-03-07 44 views
1

我過去兩天一直在嘗試這些方法,並在同一點卡住。 我真的很感謝這方面的幫助。 是否可以在加載didFinishLaunchingWithOptions下的應用程序時添加兩個不同的NSOperation。 就像我有兩個不同的XML URL解析數據並使用NSOperation來添加數據庫中的數據。 當前,當我解析兩個不同的URL並使用NSOperations時,第一個NSOperationQueue具有來自第一個URL的元素,這意味着它在完成後不會釋放。我們可以在didFinishLaunchingWithOptions下添加兩個不同的NSOperations

任何人都可以幫助我嗎?

Sagos


static NSString *string1 = @"abc.com/abc1.xml";; 
NSURLRequest *URL1 =[NSURLRequest requestWithURL:[NSURL URLWithString:string1]]; 
self.URL1Connection =[[[NSURLConnection alloc] initWithRequest:URL1 delegate:self] autorelease]; 
static NSString *string2 = @"abc.com/abc2.xml";; 
NSURLRequest *URL2 =[NSURLRequest requestWithURL:[NSURL URLWithString:string2]]; 
self.URL2Connection =[[[NSURLConnection alloc] initWithRequest:URL2 delegate:self] autorelease]; 
+0

你是什麼意思「第一個NSOperationQueue有來自第一個URL的元素」? 'NSOperationQueue'應該包含操作而不是數據對象。請張貼一些代碼,因爲很難理解發生了什麼。 – hoha 2011-03-07 18:16:12

+0

下一次請將代碼添加到您的問題。代碼不應該發佈在評論中,因爲你看到它是不可讀的。 – 2011-03-07 18:20:12

+0

你是如何創建你的隊列? – 2011-03-07 18:21:56

回答

0

好的,爲了防止更多的不答覆和紅點你我會寫一個通用的工作流程。

這是我將如何解決這個問題。我會創建一個既能下載又能解析的NSOperation。我會忽略「NSOperation + Networking =你做錯了!」 - 現在說Sayers。

創建一個帶有url和委託的NSOperation(這可以是將顯示數據的視圖控制器),同步獲取數據(即NSData *data = [NSData dataWithContentsOfURL:url];)然後在數據到達時解析數據。完成後,您告訴代表數據已準備就緒。

這將消除稍微更復雜的任務來區分任意數量的xml下載。因爲(我認爲)這是你的問題。其中一個完成後,您已將兩個NSOperations添加到隊列中。所以另一個運行的數據不完整。如果我不得不猜測,我會說你也混合了兩者的下載數據。

將NSOperationQueue添加到您的appDelegate中,並將NSOperations添加到此隊列中。


作爲一個側面說明,當你有問題的意見或補充時,你應該把它們放在問題中。答案僅用於解答問題。如果你想多發一次,並且喜歡與其他開發者的對話,你應該看看論壇。例如thisthis但還有更多。但他們通常會吮吸,沒有人(誇張)在那裏給出了很好的答案,因爲沒有人想要閱讀3頁上的50個帖子來獲取圖片。這就是爲什麼我們試圖將所有相關問題都納入問題的原因。想要回答你的問題的人更容易。

因此,下次如果有人要求更多信息或代碼,請編輯問題並在其中添加信息。如果你不回答問題,你永遠不應該發佈答案。

+0

非常感謝您的回答。我從來沒有想過,在寫答案和提問的時候會有區別,因爲我無法在評論部分中找到答案。所以我想添加回答部分。但我會嘗試添加一個委託與viewcontroller。但還有一個問題,我是iPhone編程的新手,不確定應該如何將我的nsoperationqueue添加到我的appdelegate。我已經使用了seismicXML示例,但它僅適用於一個URL連接。 – lifemoveson 2011-03-08 18:34:32

0

@fluchtpunkt:

我有具有其中我分別填充它們中的每一個數據的兩個不同的XML網址。兩個XML文件結構都不同,因此我有兩個不同的NSOperation來解析文件並將它們添加到它們的數據庫中。 我不知道如何在我的viewcontroller中添加NSOperation,如果可能的話,這將對我有很大的幫助,因爲我對這兩個URL有兩個不同的視圖控制器。

相關問題