获取在线/离线可达性通知
|
首先,我要强调的是我所说的是Mac OS X SDK,而不是iPhone。
为了确定\“ connectivity \”并获取标志,我做类似的事情:
#import <SystemConfiguration/SystemConfiguration.h>
const char *hostName = [@\"google.com\" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithName(NULL, hostName);
SCNetworkConnectionFlags flags = 0;
SCNetworkReachabilityGetFlags(target, &flags);
这样做正好-获取有关Google可达性的信息(这正是我想知道的信息)。
有没有办法向更改添加观察者?我一直在研究ѭ1,但是我发现来自Apple的单个示例和文档有些让人不知所措。
理想情况下,我希望能够设置一个用于标志更改的功能,但这就足够了:请注意何时“丢弃” /释放IP以及何时获取IP。 (然后,我可以对在获得的IP上触发的函数中进行硬编码的可达性)。
请不要犹豫,要求详细说明。
没有找到相关结果
已邀请:
2 个回复
耐钨徒
和
。除非要专门观看特定的网络接口,否则不需要使用ѭ1。 如果您想看一个完整的示例,则可以看到我对NCIDpop(网络呼叫者ID显示器)所做的工作。在此文件中搜索“ 5”。
函数中的注释使您对预期的状态转换有一些了解(在编写该代码时,这些转换并没有得到很好的记录)。
春驹晴陪
您可以在项目中复制/粘贴Reachability.h和.m文件(实际上,这是每个人都要做的;我不知道为什么Apple不直接在其框架中添加此Obj-C类!) 注意:如果您仍然想使用普通C语言,您也可以自己调用ѭ2(如上述Apple示例中的操作),并为其提供一个指向实现代码的C函数的指针。如果这样做,请不要忘记安排RunLoop的可达性以启动观察过程,并在完成后将其从RunLoop中删除。