【问题标题】:why do serviceSubscriberCellularProviders return nil? (in iOS 12)为什么 serviceSubscriberCellularProviders 返回 nil? (在 iOS 12 中)
【发布时间】:2019-03-21 15:22:52
【问题描述】:

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 值。

你知道为什么会这样吗?请帮帮我

【问题讨论】:

    标签: swift core-telephony


    【解决方案1】:

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

    【讨论】:

    • 这发生在 iOS 12.1.4 中对我有什么想法吗?
    【解决方案2】:

    我认为这是 Apple 的错误。试试这个:

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

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

    【讨论】:

    • 不幸的是,这并没有为我解决任何问题
    猜你喜欢
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多