2011-03-23 31 views
0

NSXMLParser的一個init方法是initWithData:(NSData * data)。 當我初始化NSData的這個樣子,當我使用NSData時,如何處理連接問題?

NSURL *url = [NSURL URLWithString:@"http://221.34.21.9"]; 
NSData *date = [[NSData alloc] initWithContentsOfURL:url]; 

如果不能達到的IP地址, 我的應用程序將等待該地址的迴應永遠。

我該如何解決這個問題?

謝謝!

回答

2

您必須通過NSURLConnection獲取數據,該數據將具有超時值,如URL Loading System Programming Guide中所述。這應該給你一個提示;引導件具有更完整的示例代碼:

// Create an NSURLRequest object with your desired URL and timeout value 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://221.34.21.9"] 
          cachePolicy:NSURLRequestUseProtocolCachePolicy 
         timeoutInterval:15.0]; 
// Begin a connection using that request 
// Assign a delegate object that will get callbacks when things happen 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

委託方法在NSURLConnection Class Reference描述你可能最感興趣的connection:didRecieveDataconnection:didFailWithError:

+0

非常感謝。它有很大幫助! – Jerry 2011-03-23 09:17:43

0

您需要實現來自Apple Reaceability example的Internet Reacheability。 這是一個測試,可以讓你知道你的互聯網連接是否可達。