SWIFT:如何将 subscriberCellularProviderDidUpdateNotifier 与 Swift 一起使用

SWIFT: How I can use subscriberCellularProviderDidUpdateNotifier with Swift

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

我无法测试它,但这是来自这个答案的代码: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

在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 = { 
 [=11=]      
 // Do whatever you need to do with it
}

看起来干净多了。