Ios SWIFT:如何与SWIFT一起使用subscriberCellularProviderDidUpdateNotifier

Ios SWIFT:如何与SWIFT一起使用subscriberCellularProviderDidUpdateNotifier,ios,swift,core-telephony,Ios,Swift,Core Telephony,我想在Swift中使用subscriberCellularProviderDidUpdateNotifier,但我不知道它可以放置在何处。 有什么想法吗?我已经搜索过了,但只有Objective-C样本可用 我无法测试它,但这是这个答案的代码: 翻译成swift: override init() { super.init() print("init"); let info = CTTelephonyNetworkInfo() info.subscriberCel

我想在Swift中使用subscriberCellularProviderDidUpdateNotifier,但我不知道它可以放置在何处。

有什么想法吗?我已经搜索过了,但只有Objective-C样本可用

我无法测试它,但这是这个答案的代码: 翻译成swift:

override init() {
    super.init()
    print("init");

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

不要忘记在目标C中导入CoreTephony,您只需使用“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        
}
承运商的类型应为
CTCarrier

当然,您可以始终使用$0,它表示
CTCarrier
参数:

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

而且它看起来更干净。

在哪里实现?Appdelegate或任何其他VC都可以吗?您可以在每个VC中实现它