2011-12-09 40 views
0

好吧,我試圖從我的網絡服務器獲取文件。但是我對某些東西感到困惑。當我使用NSURL時,我可以使用像這樣的URL來獲取我的xml文件:「localhost ...../bla.xml」。但我也試圖測試一些東西......比如......如果我有一個開放的網絡服務器連接,我的應用程序會發生什麼情況,並且我失去了與互聯網的連接?上面的NSURL方法,我沒有真正建立任何連接,它總是連接正確的?或者我應該使用NSURLConnection?網絡服務器NSURL NSURLConnection

也許這有點令人困惑,因爲我很困惑。我希望有人能給我一些我可以研究的信息。

謝謝。

回答

3

看看NSURLConnection類。 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html

創建連接對象,並設置了超時值,如果你失去連接,或者連接超時NSURLConnection的委託方法:- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error被調用,你會收到通知的事件。

您也可以使用NSURLConnectionsendSynchronousRequest方法,但強烈建議不要使用該方法,因爲它會阻止其運行的線程。

+0

感謝您的回答:) – WYS

0

您是否試圖訪問文件的內容?如果是這樣,你會使用以下。

NSError *error; 
NSURL *url = [NSURL URLwithString:@"localhost/file.html"]; 
NSString *filecontents = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; 

NSString對象filecontents將包含您的字符串。

在這麼短的時間內,您將無法斷開連接。如果沒有連接,錯誤將應用於error

編輯: 如果你想不斷保持連接到服務器,這是一個不同的故事。 你必須使用C的send()recv()功能,你可以閱讀關於here。 我對此並不瞭解,而且我正在自己學習,因此您應該問問其他人如何設置服務器。但你需要有另一個程序同時運行。

+0

我可以訪問我的文件,但你是對的。我不能在如此短的時間內失去聯繫。所以我有點想建立一個連接,我總是「連接」。我在這裏錯了嗎? – WYS