Ios6 ip地址更改通知

Ios6 ip地址更改通知,ios6,reachability,Ios6,Reachability,我正在使用可达性类来检测wifi可用性 在某些情况下,ipad将连接到一个wifi网络,而用户将连接到另一个可用的wifi网络 在这些网络转换期间,不会生成可到达->不可到达->可到达通知 ipad的ip地址发生变化时的这种连接变化正是我想要听到的 本地wifi连接更改的通知是否存在,或者我必须定期轮询我的ip吗?我个人只需使用找到的代码轮询ip,无论您觉得多么频繁(每秒一次应该可以),然后只存储以前的结果,看看它是否更改 我真正建议的是设置一个简单的委托类,它可以为您执行此操作,并将自定义事件

我正在使用可达性类来检测wifi可用性

在某些情况下,ipad将连接到一个wifi网络,而用户将连接到另一个可用的wifi网络

在这些网络转换期间,不会生成可到达->不可到达->可到达通知

ipad的ip地址发生变化时的这种连接变化正是我想要听到的


本地wifi连接更改的通知是否存在,或者我必须定期轮询我的ip吗?

我个人只需使用找到的代码轮询ip,无论您觉得多么频繁(每秒一次应该可以),然后只存储以前的结果,看看它是否更改

我真正建议的是设置一个简单的委托类,它可以为您执行此操作,并将自定义事件发送到任何需要这些更新的类。这应该是非常直接的,特别是考虑到你似乎有一些经验

更新

我在下面发布了一些代码,这些代码将创建一个委托,一旦它检测到IP中的任何更改,它将回调任何类。请注意,可能会有一些错误/打字错误,因为我目前不在使用XCode的计算机前,但您应该了解大致情况

IPChangeNotifier.h

#import <UIKit/UIKit.h>

@protocol IPChangeNotifierDelegate;

@interface IPChangeNotifier : NSObject {
    NSString *prevIP;
    NSTimer *changeTimer;
    id changeDelegate;
}
-(id) initWithTimer:(float)time andDelegate:(id)del;
-(NSString*)getIPAddress;
-(void) checkForChange;
@end

@protocol IPChangeNotifierDelegate <NSObject>
@optional
-(void) IPChangeDetected:(NSString*)newIP previousIP:(NSString*)oldIP;
@end
还要确保包含以下方法,以确保可以获取更改事件并执行所需的任何操作

-(void) IPChangeDetected:(NSString*)newIP previousIP:(NSString*)oldIP {
     // Do what you need
}

感谢您提供的详细示例。它与我的轮询实现非常接近。我还没有找到像我感兴趣的那样的系统通知,所以我想我会在这段时间内继续。我不认为有一个系统级别的事件不是私有的。也许有一个苹果可以给我们,但不管怎样,写自己的东西很容易。
IPChangeNotifier *ipChecker = [[IPChangeNotifier alloc] initWithTimer:1.0 andDelegate:self]
-(void) IPChangeDetected:(NSString*)newIP previousIP:(NSString*)oldIP {
     // Do what you need
}