我想在Swift中使用subscriberCellularProviderDidUpdateNotifier,但我不知道它的放置方式和位置。
有任何想法吗?我已经搜索过了,但只有Objective-C样本可用。
答案 0 :(得分: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
}
运营商的类型为CTCarrier
。
当然,您总是可以使用引用CTCarrier
参数的$ 0:
networkInfo.subscriberCellularProviderDidUpdateNotifier = {
$0
// Do whatever you need to do with it
}
它看起来更干净。
答案 1 :(得分:-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