如何在iphone中执行在线连接验证

如何在iphone中执行在线连接验证,iphone,objective-c,Iphone,Objective C,我有两个数据库,一个在Web服务器上,另一个在本地 在这里,我必须检查设备,如果在线连接打开,那么数据应该来自Web服务器数据库如果在线关闭,那么数据来自sqlite本地数据库和iphone上的diplay数据。请帮助我解决这个问题。使用网络相关信息的可达性。请在appDelegate头文件中查看apple的可达性示例。 NetworkStatus remoteHostStatus; NetworkStatus internetConnectionStatus; NetworkStatus lo

我有两个数据库,一个在Web服务器上,另一个在本地
在这里,我必须检查设备,如果在线连接打开,那么数据应该来自Web服务器数据库如果在线关闭,那么数据来自sqlite本地数据库和iphone上的diplay数据。请帮助我解决这个问题。

使用网络相关信息的可达性。请在appDelegate头文件中查看apple的可达性示例。

NetworkStatus remoteHostStatus;
NetworkStatus internetConnectionStatus;
NetworkStatus localWiFiConnectionStatus;
@property NetworkStatus remoteHostStatus;
@property NetworkStatus internetConnectionStatus;
@property NetworkStatus localWiFiConnectionStatus;
在appDelegate.m文件中

- (void)updateStatus
{
    self.remoteHostStatus           = [[Reachability sharedReachability] remoteHostStatus];
    self.internetConnectionStatus   = [[Reachability sharedReachability] internetConnectionStatus];
    self.localWiFiConnectionStatus  = [[Reachability sharedReachability] localWiFiConnectionStatus];
}

- (BOOL)isCarrierDataNetworkActive
{
    return (self.remoteHostStatus == ReachableViaCarrierDataNetwork);
}

- (NSString *)hostName
{
    return @"www.apple.com";
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{  
    [[Reachability sharedReachability] setHostName:[self hostName]];
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(reachabilityChanged:) 
                                                 name:@"kNetworkReachabilityChangedNotification" 
                                               object:nil];
}

将reachabilty.m和reachabilty.h添加到项目中。在整个程序生命周期内处于活动状态的控制器中,添加以下行并使用以下回调

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];

    internetReachable = [[Reachability reachabilityForInternetConnection] retain];
    [internetReachable startNotifier];

    // check if a pathway to a random host exists
    hostReachable = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
    [hostReachable startNotifier];
回调如下所示:

- (void) checkNetworkStatus:(NSNotification *)notice
{
    // called after network status changes

    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
    switch (internetStatus)

    {
        case NotReachable:
        {
            break;

        }
        case ReachableViaWiFi:
        {
            break;

        }
        case ReachableViaWWAN:
        {
            break;

        }
    }

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
    switch (hostStatus)

    {
        case NotReachable:
        {
            break;

        }
        case ReachableViaWiFi:
        {
            break;

        }
        case ReachableViaWWAN:
        {
            break;

        }
    }
}

我看到了allready,但如何编码你能给我样本吗?Praveen ur ans是正确的,但我想我有两件事,一个是服务器数据库代码,另一个是api.m文件中的本地数据库代码,然后我想,如果连接打开,那么数据来自服务器如果连接关闭,那么数据应该来自合法数据库,而不是来自服务器,我怎么做帮我弄清楚你的身份。若状态已更改,则从本地数据库读取,若连接有效,则从服务器检查。没那么难,“状态名称”非常清楚地表示连接状态。因此,我必须给出internet状态下的服务器代码和sqlite代码主机状态,如下图所示。Robin我尝试了代码,但现在我混淆了我必须将代码放在何处我有服务器连接和sqlite连接我的ans如果用户再次登录,则用户名和密码应为始终首先从不在sqlite数据库中的服务器中勾选,如果服务器关闭,则用户名和密码应从sqlite数据库中勾选。您可以使用上述代码检查连接,而不必满足任何要求。