为什么在iOS 12中serviceSubscriberCellularProviders返回nil?

7

关于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成功返回正确的SIM卡信息,然而serviceSubscriberCellularProviders返回了nil值。

您知道为什么会出现这种情况吗?请帮我解决问题。

2个回答

4

这是iOS 12.0.x中的一个错误,已经在iOS 12.1中修复。


这在我的iOS 12.1.4上发生了,有什么想法吗? - tp2376

-1

我认为这是苹果的一个bug。尝试一下:

    CTTelephonyNetworkInfo *networkStatus = [[CTTelephonyNetworkInfo alloc] init];
if (@available(iOS 12.0, *)) {
    NSDictionary *info = networkStatus.serviceSubscriberCellularProviders;
    NSLog(@"%@", [networkStatus valueForKey:@"serviceSubscriberCellularProvider"]);
}

它在iPhone XS Max(双卡)上运行良好。而且它似乎是一个私有方法。


这对我来说不幸没有解决任何问题。 - Henry Heleine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接