CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyNRNSA API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macos);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyNR API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(macOS);
這是Apple CoreTelephony框架下用來判斷5G的字段肥隆,在系統(tǒng)標識上Apple寫的是iOS14.0。
后面版本APPLE已更正稚失。
如果你用Xcode12是編譯不過的栋艳,并且如果你在iOS14.0系統(tǒng)下判斷上面的兩個字段會造成崩潰,因為這是iOS14.1的系統(tǒng)引入的句各。
造成崩潰之后解決方案:
CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
NSString *currentRT = [info currentRadioAccessTechnology];
if (@available(iOS 14.1, *)) {
if ([currentRT isEqualToString:CTRadioAccessTechnologyNRNSA] || [currentRT isEqualToString:CTRadioAccessTechnologyNR]) {
return @"5G";
}
}