iOS 13 получит статус приложенияBar crash - PullRequest
0 голосов
/ 06 июля 2019

сбой только на бета2 и бета 3, когда код вызова такой:

[application valueForKeyPath:@"statusBar"]

некоторые могут мне помочь?я вызываю этот метод, чтобы узнать состояние сети телефона.весь код, подобный следующему:

if (![self isIPhoneX]) {
        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];
        }
        Class expectClass = NSClassFromString(@"UIStatusBarDataNetworkItemView");
        for (id child in children) {
            if ([child isKindOfClass:expectClass]) {
                int netType = [[child valueForKeyPath:@"dataNetworkType"] intValue];
                switch (netType) {
                    case 0: state  = @"";break;
                    case 1: state  = @"2g";break;
                    case 2: state  = @"3g";break;
                    case 3: state  = @"4g";break;
                    case 5: state  = @"wifi";break;
                    default: state = @"";break;
                } /* switch */
            }
        }
    } else {
        id statusBar = [application valueForKeyPath:@"statusBar"];
        id statusBarView = [statusBar valueForKeyPath:@"statusBar"];
        UIView *foregroundView = [statusBarView valueForKeyPath:@"foregroundView"];
        children = [[foregroundView subviews][2] subviews];
        for (id child in children) {
            if ([child isKindOfClass:NSClassFromString(@"_UIStatusBarWifiSignalView")]) {
                state  = @"wifi";  
            }else if ([child isKindOfClass:NSClassFromString(@"_UIStatusBarStringView")]) {
                NSString *str = [child valueForKeyPath:@"_originalText"]; 
                if ([str isEqualToString:@"4G"]) {
                    state  = @"4g";  
                }else if([str isEqualToString:@"3G"]){
                    state  = @"3g"; 
                } else{
                    state  = @"2g"; 
                }
            }
        }
    }

Я устанавливаю открытую бета-версию iOS 13, и все работает хорошо, кроме ярлыков, показывающих ..., но я получаю сбой, когда онлайн бета2 и бета3 версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...