iOS可达性未知时刻

iOS可达性未知时刻,ios,objective-c,reachability,Ios,Objective C,Reachability,我在我的应用程序中使用苹果的可达性类,以便在我上下网络时引起注意,这样我就知道我应该从在线还是本地获取数据 我的问题是,有一个3-5秒的小间隙。如果我断开与网络的连接,例如打开飞机模式,则需要3-5秒后,我才会收到通知,不再使用任何网络 这意味着,如果我在此期间尝试获取应用程序中的任何数据,它会认为我在线,因此无法获取数据等 我如何处理这个差距?如果您不知道设备何时脱机,这似乎是一个困难的问题。请尝试在AppDelegate.m中设置可访问性类,如下所示: Reachability *inter

我在我的应用程序中使用苹果的可达性类,以便在我上下网络时引起注意,这样我就知道我应该从在线还是本地获取数据

我的问题是,有一个3-5秒的小间隙。如果我断开与网络的连接,例如打开飞机模式,则需要3-5秒后,我才会收到通知,不再使用任何网络

这意味着,如果我在此期间尝试获取应用程序中的任何数据,它会认为我在线,因此无法获取数据等


我如何处理这个差距?如果您不知道设备何时脱机,这似乎是一个困难的问题。

请尝试在AppDelegate.m中设置可访问性类,如下所示:

Reachability *internetReachable;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    // Set up Reachability
    internetReachable = [Reachability reachabilityForInternetConnection];

    // check for internet connection
    [[NSNotificationCenter defaultCenter] addObserver:self
                                           selector:@selector(checkNetworkStatus:)
                                                 name:kReachabilityChangedNotification object:nil];

    [internetReachable startNotifier];

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

    if ( connected]) {
       // Your code HERE!
    }

}

- (BOOL)connected {
    Reachability *reachability = [Reachability reachabilityForInternetConnection];
    NetworkStatus networkStatus = [reachability currentReachabilityStatus];
    return networkStatus != NotReachable;
}

这对我来说非常有效。

我已经尝试过你的代码,它的工作原理与我现有的可达性代码相同。在失去网络连接和接到通知之间仍然存在明显的差距。