NSXMLParser的一个init方法是initWithData:(NSData * data)。 当我像这样初始化NSData时,
NSURL *url = [NSURL URLWithString:@"http://221.34.21.9"];
NSData *date = [[NSData alloc] initWithContentsOfURL:url];
如果无法访问IP地址, 我的应用程序将永远等待该地址的响应。
我该如何解决这个问题?
谢谢!
答案 0 :(得分: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:didRecieveData
和connection:didFailWithError:
答案 1 :(得分:0)
您需要从Apple Reaceability example实施Internet Reacheability。 这是一个测试,可以让您知道您的互联网连接是否可以访问。