我在离线模式下在数据库中有一些数据。设备一旦上线,我想与服务器同步。我正在尝试使用Reachability
。但我没有得到Reachability
的任何回复。我正在尝试下面的代码,但它不起作用。
我在ViewDidiLoad
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
然后调用此方法:
-(BOOL)reachabilityChanged:(NSNotification*)note
{
BOOL status =YES;
Reachability * reach = [note object];
if ([reach currentReachabilityStatus] == NotReachable )
{
status = NO;
NSLog(@"NetWork is not Available");
}
else
{
status = YES;
NSLog(@"NetWork is Available");
}
return status;
}
但没有任何事情发生。请有人建议我。我的要求是当网络到来的时候自动db数据将与服务器同步。无需触摸设备。
先谢谢...
答案 0 :(得分:1)
我已经使用了可达性类进行网络检查 在ViewDidload方法中添加以下行:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(checkNetworkStatus:)
name:kReachabilityChangedNotification
object:nil];
kReachabilityChangedNotification在Reachability类中设置。
还添加以下方法:
-(void) checkNetworkStatus:(NSNotification *)notice
{
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)
{
case NotReachable:
{
NSLog(@"The internet is down.");
break;
}
case ReachableViaWiFi:
{
NSLog(@"The internet is working via WIFI.");
break;
}
case ReachableViaWWAN:
{
NSLog(@"The internet is working via WWAN.");
break;
}
}
}
我已使用上面的代码进行网络检查。
希望这会对你有所帮助。
答案 1 :(得分:0)
您可能缺少启动通知程序。
使可达性对象/属性说“internetReachability”,当你添加观察者时,启动通知程序。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged :) name:kReachabilityChangedNotification object:nil]; internetReachability = [Reachability reachabilityForInternetConnection]; [internetReachability startNotifier];
希望这会有所帮助。:)