В настоящее время я работаю над приложением, которое требует от меня проверки доступности.
Благодаря этому я начал искать вещи и нашел DDG и код Apple. Я решил использовать последний код доступности Apple.
Я импортировал это, и, как предложено в примере Apple, я придумал следующий способ регистрации:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationHandler:) name:kReachabilityChangedNotification object:nil];
//check for local connection and start notifier
client = [[Reachability reachabilityForInternetConnection] retain];
[client startNotifier];
//check for server connection and start notifier
server = [[Reachability reachabilityWithHostName:SERVER_HOST_NAME] retain];
[server startNotifier];
//check for other server and start notifier
otherServer = [[Reachability reachabilityWithHostName:OTHER_SERVER_HOST_NAME] retain];
[otherServer startNotifier];
Когда я запустил приложение, я заметил, что этот код начал блокировать пользовательский интерфейс (основной поток). Я не мог взаимодействовать с другими элементами пользовательского интерфейса, пока не было разрешено имя хоста. Теперь я знаю, что Apple сделала предупреждение о разрешении DNS и делает его асинхронным.
Мой вопрос будет таким: как мне сделать это асинхронным?
Я порождаю другой поток и поддерживаю его работу, чтобы не "освободить" объект Reachability?
Заранее спасибо за помощь! :)