为什么 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

中修复