在使用xcode9运行iPhoneX模拟器时偶然发现报错
reason: '[<UIStatusBar_Modern 0x7f8e73303830> valueForUndefinedKey:]: this class is not key value coding-compliant for the key foregroundView.'
原来由于iPhone X的状态栏多嵌套了一层,和其他版本手机差异比较大的,因此在获取状态栏网络状态时也需要多取一次。
UIApplication *application = [UIApplication sharedApplication];
NSArray *children;
if([[application valueForKeyPath:@"_statusBar"] isKindOfClass:NSClassFromString(@"UIStatusBar_Modern")]) {
children = [[[[application valueForKeyPath:@"_statusBar"] valueForKeyPath:@"_statusBar"] valueForKeyPath:@"foregroundView"] subviews];
} else{
children = [[[application valueForKeyPath:@"_statusBar"] valueForKeyPath:@"foregroundView"] subviews];
}