gpt4 book ai didi

ios - subscriberCellularProviderDidUpdateNotifier 从未被调用

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:21:58 27 4
gpt4 key购买 nike

以下代码:

CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
info.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier *carrier) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"User did change SIM");
});
};

内部:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  • 或者无论我把代码放在哪里只是为了测试它。

无论我用 iSO 7.1.1 在 iPad Air Mini Wifi+3G 上更换多少张 SIM 卡,事件都不会被调用。

我做错了什么?

最佳答案

您需要持有对 CTTelephonyNetworkInfo 对象的强引用。

Swift(iOS 12.0 及更新版本):

在您的应用委托(delegate)类中,为此对象声明一个名为 telephonyNetworkInfo 的属性,如下所示:

let telephonyNetworkInfo = CTTelephonyNetworkInfo()

然后将其放入您的应用委托(delegate)的 didFinishLaunchingWithOptions 方法中:

telephonyNetworkInfo.serviceSubscriberCellularProvidersDidUpdateNotifier = { [weak telephonyNetworkInfo] carrierIdentifier in
let carrier: CTCarrier? = telephonyNetworkInfo?.serviceSubscriberCellularProviders?[carrierIdentifier]

DispatchQueue.main.async {
print("User did change SIM")
}
}

Swift(iOS 12.0 之前):

在您的应用委托(delegate)类中,为此对象声明一个名为 telephonyNetworkInfo 的属性,如下所示:

let telephonyNetworkInfo = CTTelephonyNetworkInfo()

然后将其放入您的应用委托(delegate)的 didFinishLaunchingWithOptions 方法中:

telephonyNetworkInfo.subscriberCellularProviderDidUpdateNotifier = { carrier in
DispatchQueue.main.async {
print("User did change SIM")
}
}

Objective-C(iOS 12.0 之前):

在您的应用委托(delegate)的@interface(或其类扩展)中,为此对象声明一个名为telephonyNetworkInfo 的属性,而不是:

CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];

使用这个:

self.telephonyNetworkInfo = [[CTTelephonyNetworkInfo alloc] init];

当然,然后将其放入您的应用委托(delegate)的 didFinishLaunchingWithOptions 方法中:

self.telephonyNetworkInfo.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier *carrier) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"User did change SIM");
});
};

关于ios - subscriberCellularProviderDidUpdateNotifier 从未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com