您好,登錄后才能下訂單哦!
前言
本文主要給大家介紹了關(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ì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。