为什么 serviceSubscriberCellularProviders return 为零? (在 iOS 12)
why do serviceSubscriberCellularProviders return nil? (in iOS 12)
关于来自 CoreTelephony 的 CTCarrier 的问题。
我听说我应该在 iOS 12 中使用 serviceSubscriberCellularProviders 而不是 subscriberCellularProvider,因为 subscriberCellularProvider 将被弃用。
所以我写了下面的代码。
import UIKit
import CoreTelephony
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let telephony = CTTelephonyNetworkInfo()
if #available(iOS 12.0, *) {
let carrier = telephony.serviceSubscriberCellularProviders
print(carrier)
}
else {
let carrier = telephony.subscriberCellularProvider
print(carrier)
}
}
}
SubscriberCellularProvider 成功return 正确的SIM 卡信息,然而,serviceSubscriberCellularProviders 只是return nil 值。
你知道为什么会这样吗?请帮助我
我认为这是 Apple 的错误。试试这个:
CTTelephonyNetworkInfo *networkStatus = [[CTTelephonyNetworkInfo alloc] init];
if (@available(iOS 12.0, *)) {
NSDictionary *info = networkStatus.serviceSubscriberCellularProviders;
NSLog(@"%@", [networkStatus valueForKey:@"serviceSubscriberCellularProvider"]);
}
在iPhone XS Max(双Sim卡)上运行良好。而且它似乎是一种私有方法。
这是 iOS 12.0.x 中的错误,已在 iOS 12.1
中修复
关于来自 CoreTelephony 的 CTCarrier 的问题。 我听说我应该在 iOS 12 中使用 serviceSubscriberCellularProviders 而不是 subscriberCellularProvider,因为 subscriberCellularProvider 将被弃用。 所以我写了下面的代码。
import UIKit
import CoreTelephony
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let telephony = CTTelephonyNetworkInfo()
if #available(iOS 12.0, *) {
let carrier = telephony.serviceSubscriberCellularProviders
print(carrier)
}
else {
let carrier = telephony.subscriberCellularProvider
print(carrier)
}
}
}
SubscriberCellularProvider 成功return 正确的SIM 卡信息,然而,serviceSubscriberCellularProviders 只是return nil 值。
你知道为什么会这样吗?请帮助我
我认为这是 Apple 的错误。试试这个:
CTTelephonyNetworkInfo *networkStatus = [[CTTelephonyNetworkInfo alloc] init];
if (@available(iOS 12.0, *)) {
NSDictionary *info = networkStatus.serviceSubscriberCellularProviders;
NSLog(@"%@", [networkStatus valueForKey:@"serviceSubscriberCellularProvider"]);
}
在iPhone XS Max(双Sim卡)上运行良好。而且它似乎是一种私有方法。
这是 iOS 12.0.x 中的错误,已在 iOS 12.1
中修复