2011-02-25 76 views
-3

我想從Web服務器下載文件,併爲我所需要
1.文件路徑發送請求到Web服務方法
2.收到這條道路上iphone側
3.現在轉換這條路徑進入NSURL
4.最後將請求發送到Web服務器的文件下載下載一個鍵問題

現在我所做的一切之上,但用戶必須
1的GetURL按鈕,然後
2.下載按鈕

我希望所有這一切點擊按鈕。

我想這個太多,但問題是:

DownlloadButtonClick 
{ 
    [self getURL]; 
    [self DownloadFile]; 
} 
getURL{ 
    soapmsg 
    NSURL 
    NSURLReuest 
    ... 
    .. 
    .. 
} 

//在這之後我期待這方面應該做的和數據(文件路徑)將被接收, 但這不會發生

之後getURL()方法將其帶回以上,並呼籲DownloadFile(),然後應用程序會崩潰...
應用程序崩潰是因爲我知道它取決於getURL()方法,這是公認的..

現在我的問題是我應該在哪裏放置getURL()方法和DownloadFile()方法這樣我就可以點擊執行這兩個

預先感謝您

+0

你的問題('que'?)很難回答,因爲它不是很好說明。而你的應用崩潰了,但這實際上並不是問題所在? – occulus 2011-02-25 13:03:59

+0

正確的我的應用程序崩潰,這對我來說沒有問題,因爲我知道爲什麼會發生這種情況,但我的主要問題是我想要做的所有4(或者你可以說執行2種方法)步驟在一次點擊... – Pooja 2011-02-25 13:08:06

回答

0

如果我理解您的硬盤正確破譯的問題...

你的問題似乎是你想做一個異步操作 - getURL - 然後當它完成時,另一個操作。在您的DownlloadButtonClick方法中,您只想調用getURL(而不是DownloadFile)。在處理getURL結果的任何代碼中(即URL已被提取),您可以啓動您的DownloadFile操作。

+0

我做到了這一點, - (無效)解析器:(的NSXMLParser *)解析器 didEndElement:(的NSString *)的ElementName 的namespaceURI:(的NSString *)的namespaceURI 的qualifiedName:(的NSString *)QNAME {\t \t如果([的ElementName isEqualToString:@ 「getURLResponse」 ]) \t { \t \t NSLog(@「soapResults:%@」,soapResults); \t \t UrlForDownload = soapResults; \t \t soapResults = nil; \t \t [self DownloadFile]; } \t } 如果我這樣做,應用程序崩潰 – Pooja 2011-02-25 13:30:02

+0

您不想在某些XML解析代碼中啓動類似於同步下載權的操作,這可能已經在主循環中。 DownloadFile如何工作?它是同步還是異步?如果它是同步的,你希望*不*在主線程中這樣做。 – occulus 2011-02-25 13:38:58

+0

我試圖幫助你自己在這裏,所以沒有粘貼更多的代碼,你能告訴我你發佈的片段是同步的還是異步的?如果你不理解這些概念,你應該確保你這樣做,因爲它將在未來對你有用。 – occulus 2011-02-25 13:53:29