Как я могу справиться с проблемой подключения, когда я использую NSData? - PullRequest
0 голосов
/ 23 марта 2011

Одним из методов инициализации NSXMLParser является initWithData: (NSData * data).Когда я запускаю NSData следующим образом,

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

, если IP-адрес не может быть достигнут, мое приложение будет ждать ответа этого адреса навсегда.

Как я могу решить эту проблему?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Вам нужно будет получить данные через NSURLConnection, который будет иметь значение времени ожидания, как описано в Руководстве по программированию системы загрузки URL . Это должно дать вам подсказку; руководство содержит более полный пример кода:

// 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 Вероятно, вас больше всего интересуют connection:didRecieveData и connection:didFailWithError:

0 голосов
/ 23 марта 2011

Вам необходимо реализовать Reacheability Internet, из Пример Apple Reaceability . Это тест, который позволит вам узнать, доступно ли ваше интернет-соединение.

...