iOS 12適配以及問題小記
前言
本文主要給大家介紹了關(guān)于iOS12適配及問題的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧
版本信息
Xcode: Version 10.0 beta (10L176w)
macOS: 10.14 Beta (18A293u)
iOS: 12.0(16A5288q)
問題及解決過程
1,StatusBar內(nèi)部結(jié)構(gòu)改變
現(xiàn)象:crash
crash log:
1,-[_UIStatusBarIdentifier isEqualToString:]: unrecognized selector sent to instance 0x283452820
2,Terminating app due to uncaught exception ‘NSInvalidArgumentException', reason: ‘-[_UIStatusBarIdentifier isEqualToString:]: unrecognized selector sent to instance 0x283452820'
———————————————————————————————
問題代碼和解決方法
+ (NSString *)getIphoneXNetWorkStates { UIApplication *app = [UIApplication sharedApplication]; id statusBar = [[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"statusBar"]; id one = [statusBar valueForKeyPath:@"regions"]; id two = [one valueForKeyPath:@"trailing"]; NSArray *three = [two valueForKeyPath:@"displayItems"]; NSString *state = @"無網(wǎng)絡(luò)"; for (UIView *view in three) { //alert: iOS12.0 情況下identifier的變成了類"_UIStatusBarIdentifier"而不是NSString,所以會(huì)在調(diào)用“isEqualToString”方法時(shí)發(fā)生crash, //修改前 // NSString *identifier = [view valueForKeyPath:@"identifier"]; //修改后 NSString *identifier = [[view valueForKeyPath:@"identifier"] description]; if ([identifier isEqualToString:@"_UIStatusBarWifiItem.signalStrengthDisplayIdentifier"]) { id item = [view valueForKeyPath:@"_item"]; //alert: 這個(gè)問題和上邊一樣itemId是_UIStatusBarIdentifier 類型,不是string NSString *itemId = [[item valueForKeyPath:@"identifier"] description]; if ([itemId isEqualToString:@"_UIStatusBarWifiItem"]) { state = @"WIFI"; } state = @"不確定"; } else if ([identifier isEqualToString:@"_UIStatusBarCellularItem.typeDisplayIdentifier"]) { UIView *statusBarStringView = [view valueForKeyPath:@"_view"]; // 4G/3G/E state = [statusBarStringView valueForKeyPath:@"text"]; } } return state; }
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
淺談iOS解析HTMl標(biāo)簽以及開發(fā)中的一些坑
這篇文章主要介紹了淺談iOS解析HTMl標(biāo)簽以及開發(fā)中的一些坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12iOS中l(wèi)ebel特殊字符的自動(dòng)換行問題解決
這篇文章主要給大家介紹了關(guān)于iOS中l(wèi)ebel特殊字符的實(shí)現(xiàn)不自動(dòng)換行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)iOS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10iOS開發(fā)中UIImageView控件的常用操作整理
這篇文章主要介紹了iOS開發(fā)中UIImageView控件的常用操作整理,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-01-01簡(jiǎn)介Objective-C解析XML與JSON數(shù)據(jù)格式的方法
這篇文章主要介紹了Objective-C解析XML與JSON數(shù)據(jù)格式的方法,文中解析JSON包括拼接JSON字符串用到了SBJson這個(gè)解析器,需要的朋友可以參考下2016-01-01iOS App開發(fā)中使用及自定義UITableViewCell的教程
這篇文章主要介紹了iOS App開發(fā)中使用及自定義UITableViewCell的教程,自定義TableViewCell文中使用Objective-C演示而非ib,需要的朋友可以參考下2016-04-04iOS本地推送簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了iOS本地推送簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09