【问题标题】:SWIFT: How I can use subscriberCellularProviderDidUpdateNotifier with SwiftSWIFT:如何在 Swift 中使用subscriberCellularProviderDidUpdateNotifier
【发布时间】:2016-05-26 09:17:51
【问题描述】:

我想在 Swift 中使用subscriberCellularProviderDidUpdateNotifier,但我不知道如何以及在何处放置它。
有任何想法吗?我已经搜索过了,但只有 Objective-C 示例可用。

【问题讨论】:

    标签: ios swift core-telephony


    【解决方案1】:

    我无法对其进行测试,但这是来自此答案的代码:Possible way to detect sim card detection in ios? 翻译成swift:

    override init() {
        super.init()
        print("init");
    
        let info = CTTelephonyNetworkInfo()
        info.subscriberCellularProviderDidUpdateNotifier = self.cellularProviderDidUpdate
    }
    func cellularProviderDidUpdate(inCTCarrier: CTCarrier) {
        print("event")
    }
    

    别忘了import CoreTelephony

    【讨论】:

      【解决方案2】:

      在 Objective C 中你只需要使用 "set" 和属性块的名称,而在 Swift 中你需要分配它:

      // Declare your class member
      let networkInfo = CTTelephonyNetworkInfo();
      
      // In viewDidLoad or in your custom method
      networkInfo.subscriberCellularProviderDidUpdateNotifier = { carrier in
          // Do whatever you wanna do when a callback comes        
      }
      

      carrier 将是 CTCarrier 类型。

      当然,您始终可以使用指向 CTCarrier 参数的 $0:

      networkInfo.subscriberCellularProviderDidUpdateNotifier = { 
       $0      
       // Do whatever you need to do with it
      }
      

      而且看起来更干净。

      【讨论】:

      • 在哪里实现这个? Appdelegate 或任何其他 VC 会做吗?
      • 你可以在每一个中实现
      猜你喜欢
      • 2015-09-21
      • 2021-04-05
      • 2014-09-18
      • 2017-08-05
      • 2014-10-26
      • 2018-12-12
      • 2021-05-15
      • 2014-10-27
      • 2021-12-20
      相关资源
      最近更新 更多