Позвольте мне сначала подчеркнуть тот факт, что я говорю о Mac OS X SDK, не iPhone.
Чтобы определить «связность» и получить флаги, я делаю что-то похожее на:
#import <SystemConfiguration/SystemConfiguration.h>
const char *hostName = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithName(NULL, hostName);
SCNetworkConnectionFlags flags = 0;
SCNetworkReachabilityGetFlags(target, &flags);
Это хорошо для получения информации о доступности Google (именно это я и хочу знать).
Есть ли способ добавить наблюдателя к изменениям? Я изучал SCDynamicStore
, но нахожу один пример от Apple и документацию немного ошеломляющим.
В идеале я бы хотел иметь возможность установить функцию для изменения флага, но этого будет достаточно: обратите внимание, когда IP «сброшен» / освобожден, и когда он получен. (Затем я мог бы сделать достижимость жестко закодированной в функции, которая запускается по полученному IP).
Пожалуйста, не стесняйтесь обращаться к подробностям.