美文网首页
Run Snow-white 1 Simulator上判断网络状

Run Snow-white 1 Simulator上判断网络状

作者: 太阳骑士索拉尔 | 来源:发表于2019-03-05 21:27 被阅读0次

    前言

    • 白雪公主当初就是吃了有毒的苹果晕倒了,在学习iOS开发的过程中,我也时不时感受到苹果的“毒性”,所以让我们来写一系列文章吐槽吧!
    • 本系列包含众多胡说八道,作者更是一个学习编程的小学生,经常写了文章之后发现错误连篇,结果还懒得改,实在罪大恶极,大家见到他后一定请他吃饭,让他羞愧而死

    吐槽

    • 最近在写无网络时的数据缓存,发现这个Simulator上的网络异常的反人类
    • 首先很遗憾你不能在settings里面关闭Wi-Fi
    • 其次就算你把电脑的网络关掉了,statusBar上的Wi-Fi标志依然如同小学生胸前的红领巾一样鲜艳坚挺

    参考文章

    一般判断方式:通过系统statusBar判断

    //获取当前网络状态  (iPhone X 上可能引发崩溃)
    + (NSString *)networkingStatesFromStatebar {  
        // 状态栏是由当前app控制的,首先获取当前app  
        UIApplication *app = [UIApplication sharedApplication];  
        //iphone X 会在这里崩溃
        NSArray *children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];    
           
        int type = 0;  
        for (id child in children) {  
            if ([child isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {  
                type = [[child valueForKeyPath:@"dataNetworkType"] intValue];  
            }  
        }  
           
        NSString *stateString = @"wifi";  
           
        switch (type) {  
            case 0:  
                stateString = @"notReachable";  
                break;  
                   
            case 1:  
                stateString = @"2G";  
                break;  
                   
            case 2:  
                stateString = @"3G";  
                break;  
                   
            case 3:  
                stateString = @"4G";  
                break;  
                   
            case 4:  
                stateString = @"LTE";  
                break;  
                   
            case 5:  
                stateString = @"wifi";  
                break;  
                   
            default:  
                break;  
        }  
           
        return stateString;  
    }
    
    • 其实就是通过statusBar上的网络图标判断,这个讲道理我个人认为本来就是最靠谱的,iOS的优点不就应该体现在这种统一性上吗?
    • 但由于我在最开始说的种种原因,这个方法并没有什么用,不管你是不是网络世界的一座孤岛,你的Simulator状态栏就和画上去的一样,纹丝不动。
    • 当然,也没谁用个APP是开模拟器用的,在真机上就没这个问题了
    • 但为了我们开发便利,显然还是要找个“更好”的方法
    • 不过这说白了,已经脱离实际了。。。

    相关文章

      网友评论

          本文标题:Run Snow-white 1 Simulator上判断网络状

          本文链接:https://www.haomeiwen.com/subject/xrsauqtx.html