MST

星途 面试题库

面试题:Objective-C中Reachability网络状态监测如何初始化及基本使用

在Objective-C中,使用Reachability进行网络状态监测时,如何初始化一个Reachability实例并开始监听网络状态的变化?请写出关键代码片段,并简要说明其原理。
29.6万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

关键代码片段

#import "Reachability.h"

// 初始化Reachability实例
Reachability *reachability = [Reachability reachabilityForInternetConnection];

// 设置网络状态变化的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil];

// 开始监听
[reachability startNotifier];

原理说明

  1. 初始化Reachability实例[Reachability reachabilityForInternetConnection] 这行代码创建了一个用于监测网络连接到互联网的 Reachability 实例。Reachability 类提供了不同的类方法来监测不同类型的网络连接,如监测WiFi连接 reachabilityForLocalWiFi 等。
  2. 设置通知:通过 NSNotificationCenter 添加一个观察者,当网络状态发生变化时(即接收到 kReachabilityChangedNotification 通知),会调用 handleNetworkChange: 方法,在这个方法中可以根据网络状态做出相应处理。
  3. 开始监听[reachability startNotifier] 启动网络状态监听,Reachability 会通过系统的网络框架持续监测网络状态变化,并在变化时发出通知。