精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一個(gè)BUG的發(fā)現(xiàn)、定位和解決

移動(dòng)開(kāi)發(fā) iOS
在iOS 11發(fā)布之后,出現(xiàn)了一系列適配相關(guān)的問(wèn)題,UIScrollView在pagingEnabled=YES時(shí)滑動(dòng)手勢(shì)不靈敏,UITableView的滑動(dòng)刪除功能變動(dòng),UIImagePickerViewController的取消按鈕點(diǎn)擊區(qū)域變小等,本文介紹其中一個(gè)UIAlertView問(wèn)題,分享其發(fā)現(xiàn)、定位和解決。

前言

在iOS 11發(fā)布之后,出現(xiàn)了一系列適配相關(guān)的問(wèn)題,UIScrollView在pagingEnabled=YES時(shí)滑動(dòng)手勢(shì)不靈敏,UITableView的滑動(dòng)刪除功能變動(dòng),UIImagePickerViewController的取消按鈕點(diǎn)擊區(qū)域變小等,本文介紹其中一個(gè)UIAlertView問(wèn)題,分享其發(fā)現(xiàn)、定位和解決。

正文

1、問(wèn)題產(chǎn)生

問(wèn)題的最初,是iOS 11正式版發(fā)布后不久,測(cè)試的同學(xué)提了一個(gè)iOS 11相關(guān)的BUG,表現(xiàn)是:在直播間內(nèi)發(fā)送聊天信息,如果被禁言,會(huì)彈出“被禁言”提示,鍵盤(pán)收回去,然后就彈不出來(lái)。

開(kāi)發(fā)在接到這個(gè)BUG的時(shí)候,先把問(wèn)題抽象出來(lái)幾個(gè)要素:直播間內(nèi)、鍵盤(pán)彈出、彈出提示、鍵盤(pán)收回、鍵盤(pán)無(wú)法彈出。

彈出提示是用的UIAlertView的方式。在鍵盤(pán)出現(xiàn)時(shí)彈出UIAlertView的提示,鍵盤(pán)會(huì)收起,UIAlertView消失后,鍵盤(pán)會(huì)再次彈出,是一次正常的表現(xiàn)。

2、問(wèn)題復(fù)現(xiàn)

按照復(fù)現(xiàn)路徑做一次嘗試,發(fā)現(xiàn)BUG可以復(fù)現(xiàn),確定問(wèn)題存在;

  • 根據(jù)經(jīng)驗(yàn),猜測(cè)問(wèn)題可能出現(xiàn)在鍵盤(pán)和UIAlertView上,與“禁言”的業(yè)務(wù)無(wú)關(guān)。
  • 在直播間內(nèi)嘗試其他非“禁言”的場(chǎng)景,同樣是在鍵盤(pán)出現(xiàn)的時(shí)候,彈出UIAlertView的提示,也會(huì)造成后續(xù)鍵盤(pán)無(wú)法彈出的情況。

在嘗試完其他非直播間的主場(chǎng)景之后,發(fā)現(xiàn)問(wèn)題可以描述為:

  • iOS 11的機(jī)器只要彈出來(lái)一次UIAlertView,之后再通過(guò)becomeFirstResponder無(wú)法呼起鍵盤(pán);必須手動(dòng)點(diǎn)擊輸入?yún)^(qū)域,觸發(fā)系統(tǒng)的鍵盤(pán)彈出行為,或者切入后臺(tái)再切回來(lái),才能正常彈出來(lái)鍵盤(pán)。
  • 部分頁(yè)面在點(diǎn)擊評(píng)論后,會(huì)添加一層透明maskView,并彈出鍵盤(pán)。點(diǎn)擊透明的maskView會(huì)調(diào)用resignFirstResponder,在鍵盤(pán)消失的notification中消除maskView。因?yàn)殒I盤(pán)無(wú)法彈出(也無(wú)法收到鍵盤(pán)消失的notification,但maskView還是正常添加),導(dǎo)致這部分頁(yè)面無(wú)法進(jìn)行后續(xù)的交互。

3、問(wèn)題評(píng)估

  • 在復(fù)現(xiàn)問(wèn)題后,需要對(duì)問(wèn)題的嚴(yán)重性進(jìn)行評(píng)估,確定BUG修復(fù)的優(yōu)先級(jí)。
  • 從已知的表現(xiàn)來(lái)看,iOS 11下的使用影響較大(UIAlertView的提示較多)。
  • 用iOS 11的機(jī)器下載外網(wǎng)版本進(jìn)行測(cè)試,發(fā)現(xiàn)BUG竟然無(wú)法復(fù)現(xiàn)!
  • 雖然很詭異,但是問(wèn)題的優(yōu)先級(jí)可以降到更低,排入正常的BUG解決列表中。

4、問(wèn)題解析

外網(wǎng)版本是Xcode8編譯的本,本地版本使用的Xcode9 GM編譯的,難道是Xcode 9編譯導(dǎo)致?

  • 新建一個(gè)demo,只有輸入框和按鈕,模擬UIAlertView彈出,發(fā)現(xiàn)demo是正常的;
  • 把a(bǔ)pp的工程設(shè)置復(fù)制到demo,把對(duì)輸入框的屬性設(shè)置同樣復(fù)制到demo,demo依舊正常;
  • 把demo代碼復(fù)制到app,并把a(bǔ)pp的rootViewController賦值為demo中的VC,依舊正常;

可以確定是app中某部分代碼導(dǎo)致的鍵盤(pán)無(wú)法彈出的。

經(jīng)過(guò)二分注釋的方式,迅速(4、5次左右)定位到問(wèn)題是app中的某個(gè)Service類(lèi)導(dǎo)致。

仔細(xì)排插Service類(lèi)的屬性,發(fā)現(xiàn)里面有一個(gè)屬性的是繼承UIWindow并且level比UIWindowLevelStatusBar高。

自此,根據(jù)所學(xué)和蘋(píng)果UIKit的文檔,我們可以對(duì)問(wèn)題進(jìn)行一次回溯。

5、問(wèn)題回溯

一個(gè)BUG的發(fā)現(xiàn)、定位和解決

蘋(píng)果官網(wǎng)上響應(yīng)鏈和UIWindow的說(shuō)明,里面關(guān)于becomeFirstResponder()的解釋是:

Asks UIKit to make this object the first responder in its window.

對(duì)于UIAlertView的iOS 11系統(tǒng)行為,猜測(cè):

  • 在UIAlertView彈出的時(shí)候,會(huì)搶占系統(tǒng)的keyWindow,所以會(huì)出現(xiàn)鍵盤(pán)在UIAlertView的時(shí)候收回(因?yàn)閗eyWindow改變);
  • 在UIAlertView消失的時(shí)候,會(huì)遍歷所有Window,找到其中z軸***作為keyWindow,所以會(huì)出現(xiàn)鍵盤(pán)在UIAlertView消失后彈出(keyWindow變成原來(lái)的);

通過(guò)寫(xiě)代碼調(diào)試app,確定了上面的猜測(cè)。

在iOS 11,如果UIAlertView彈出時(shí),存在windowLevel 大于 UIWindowLevelNormal 的UIWindow,就會(huì)觸發(fā)這個(gè)鍵盤(pán)無(wú)法彈出的BUG。

6、問(wèn)題修復(fù)

  • 保證app中,沒(méi)有常駐的UIWindow;
  • 修復(fù)鍵盤(pán)無(wú)法彈出時(shí),maskView無(wú)法消除的BUG;
  • UIAlertView在后續(xù)的版本替換掉;

總結(jié)

  • 這次問(wèn)題從產(chǎn)生、復(fù)現(xiàn)、定位、評(píng)估再到修復(fù)的時(shí)間,和寫(xiě)這篇文章的時(shí)間差不多。
  • BUG的解決流程各不相同,借此提醒自己對(duì)于BUG的解決要有目的性和優(yōu)先級(jí)。
責(zé)任編輯:未麗燕 來(lái)源: 簡(jiǎn)書(shū)
相關(guān)推薦

2022-04-06 08:47:03

Dubbo服務(wù)協(xié)議

2009-08-18 11:01:51

2018-01-29 21:56:28

Bug程序程序員

2024-10-23 16:11:07

調(diào)試bug定位

2021-04-22 07:47:47

JavaJDKMYSQL

2022-11-30 09:18:51

JavaMyBatisMQ

2009-03-05 11:40:31

ListBox開(kāi)發(fā)Silverlight

2018-11-22 15:07:17

代碼github程序

2009-09-14 17:08:02

WebFormView

2025-02-13 07:00:00

Dubbo-goJava服務(wù)端

2024-11-12 15:42:06

2023-09-21 23:08:36

MySQL數(shù)據(jù)庫(kù)死鎖

2009-08-26 17:53:31

C# DropDown

2021-10-08 07:50:57

軟件設(shè)計(jì)程序

2011-08-01 09:25:32

SQL Server數(shù)

2020-05-04 11:04:46

HTTP劫持寬帶

2024-04-22 00:00:01

Redis集群

2014-12-17 09:40:22

dockerLinuxPaaS

2022-05-16 08:42:26

Pandasbug

2019-08-01 12:59:21

Bug代碼程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国内精品福利| 盗摄牛牛av影视一区二区| 国产亚洲欧洲一区高清在线观看| 国产精品福利无圣光在线一区| 五月天精品在线| 日日夜夜一区| 亚洲3atv精品一区二区三区| 日本视频精品一区| 性一交一乱一精一晶| 中国女人久久久| 久久精品视频播放| 国产福利在线观看视频| 亚洲国产91视频| 欧美日韩亚洲精品内裤| 亚洲日本精品一区| 无套内谢的新婚少妇国语播放| 日韩av网站免费在线| 久操成人在线视频| 亚洲一区二区自偷自拍| 99a精品视频在线观看| 欧美性猛交xxxxxx富婆| av无码久久久久久不卡网站| www.成人.com| 成人av网站在线| 成人美女免费网站视频| 久久人妻免费视频| 欧美日本三区| 俺去啦;欧美日韩| 插吧插吧综合网| 亚洲电影一区| 欧美精品精品一区| av无码精品一区二区三区| 538在线观看| 中文字幕在线观看一区二区| 欧美午夜精品久久久久久蜜| 少妇高潮一区二区三区99小说| 激情成人午夜视频| 日韩av123| 日韩免费黄色片| 欧美激情偷拍| 久久综合久中文字幕青草| 波多野吉衣中文字幕| 国产伦理久久久久久妇女| 欧美一区二区三区不卡| av亚洲天堂网| 免费一级欧美在线观看视频| 91久久精品网| aaa毛片在线观看| 伊人久久精品一区二区三区| 午夜成人在线视频| 国产xxxx振车| 免费av不卡在线观看| 亚洲精品日日夜夜| 中国一级黄色录像| 黄色成人在线观看| 亚洲欧美日韩一区二区三区在线观看| 亚洲一区二区三区免费看| 岛国在线视频免费看| 国产性天天综合网| 欧美日韩综合网| 国产精品无码2021在线观看| 国产欧美一区二区三区网站| 亚洲成人网上| 精品美女在线观看视频在线观看 | 欧美在线一二三| 97成人在线观看视频| 久久久男人天堂| 欧美视频在线看| 精品www久久久久奶水| 欧美大胆成人| 欧美日韩在线精品一区二区三区激情| the porn av| 国产精品成人**免费视频| 欧美一区二区在线看| 亚洲区 欧美区| 国产精品自在线拍| 亚洲天堂av在线免费| 91无套直看片红桃在线观看| 国产精品久久久久久麻豆一区软件| 久久九九精品99国产精品| 欧美成人精品欧美一级私黄| 亚洲看片免费| 国产精品第10页| 国产精品久久久久久久免费| 不卡一区二区在线| 日韩av一级大片| av大片在线| 欧美色视频日本版| 嫩草视频免费在线观看| 97se亚洲| 日本精品在线| 最新亚洲视频| 国产精品成人va在线观看| 一区二区日韩视频| 成人精品国产免费网站| 日本高清一区| 曰本三级在线| 色综合久久99| 亚洲一区二区图片| 亚洲丁香日韩| 久久久成人的性感天堂| 国产一级淫片a| 麻豆精品视频在线观看| 粉嫩av一区二区三区免费观看| 日本a一级在线免费播放| 亚洲丝袜另类动漫二区| 日本精品免费在线观看| 成人免费91| 亚洲欧美在线免费| 妺妺窝人体色www婷婷| 久久精品亚洲一区二区| av噜噜色噜噜久久| 3p在线观看| 欧美日韩激情美女| 人妻换人妻仑乱| 精品国产一级毛片| 91精品国产高清自在线| 国产内射老熟女aaaa∵| 国产三级久久久| 亚洲熟妇国产熟妇肥婆| 免费观看亚洲视频大全| 中文字幕亚洲字幕| 国产专区第一页| 成人免费视频视频在线观看免费| 一区二区三区国产福利| 综合久久2023| 亚洲国产成人在线视频| 青青草在线观看视频| 美女视频黄a大片欧美| 国产精品一区二区免费| 宅男在线观看免费高清网站| 欧美日韩美女一区二区| www.黄色在线| 久久亚洲电影| 麻豆传媒一区二区| 丝袜诱惑一区二区| 亚洲精品国产suv| 国产在线视频第一页| 国产精品一级黄| 波多野结衣激情| 日韩护士脚交太爽了| 中文字幕日韩高清| 国产女优在线播放| 欧美国产禁国产网站cc| 欧美xxxxx在线视频| 亚洲制服一区| 浅井舞香一区二区| 国外av在线| 在线精品国精品国产尤物884a| 国产熟妇久久777777| 久久成人一区| 日韩精品av一区二区三区| 欧美成a人片在线观看久| 亚洲人免费视频| 日本中文字幕在线观看视频| 国产日韩av一区| 免费黄色一级网站| 日本精品三区| 成人看片人aa| 日本精品600av| 精品国产一二三| 日本在线视频免费| 久久综合色播五月| 黄色aaa级片| 91影院成人| 亚洲精品欧美日韩专区| 手机在线免费av| 亚洲成人精品视频| 亚洲天堂视频网站| 中文字幕精品一区| 99中文字幕在线| 欧美日韩亚洲国产精品| 国产一区二区视频在线免费观看| 欧美a级在线观看| 一区二区三区四区视频| 国产又黄又爽视频| 亚洲国产欧美在线| 中文字幕第20页| 精品一区二区久久久| 99久久久精品视频| 亚洲欧洲av| 成人欧美一区二区三区在线| 丝袜美腿av在线| 亚洲男人天堂九九视频| 亚洲一区二区色| 亚洲午夜激情网站| 中文字幕第24页| 国产.欧美.日韩| 欧美视频免费播放| 亚洲综合五月| 久久久久久精| 国产精品一区免费在线| 欧美亚洲第一区| 久久99精品久久| 精品视频偷偷看在线观看| 亚洲在线免费观看视频| 亚洲福利视频三区| 久久精品色妇熟妇丰满人妻| 成人一级视频在线观看| 538任你躁在线精品免费| 欧美在线亚洲综合一区| 欧美亚洲爱爱另类综合| 97色成人综合网站| 国产精品视频成人| 91制片在线观看| 日韩亚洲第一页| 色视频免费在线观看| 欧美一区二区播放| 一级黄色av片| 亚洲.国产.中文慕字在线| 国产精品一区二区亚洲| 99精品久久久久久| 日韩欧美中文在线视频| 日本不卡在线视频| 美女日批免费视频| 国产精品久久| 国产精品亚洲天堂| 成人无号精品一区二区三区| 久草热久草热线频97精品| 麻豆视频久久| 91精品国产综合久久男男| 欧美一级鲁丝片| 久久久久久久久综合| 国产成人在线视频免费观看| 国产午夜精品一区理论片飘花| 日韩在线一区二区三区四区| 欧美一区二区三区在线看 | 精品毛片三在线观看| 神马久久精品综合| 中文在线资源观看网站视频免费不卡| 亚洲黄色免费在线观看| 成人h精品动漫一区二区三区| 中文字幕视频三区| 秋霞午夜鲁丝一区二区老狼| 日本黄网站免费| 国产亚洲毛片| 日本免费不卡一区二区| 亚洲调教视频在线观看| 国产高清不卡无码视频| 亚洲一级毛片| 国产在线拍揄自揄拍无码| 天堂美国久久| 日本丰满少妇黄大片在线观看| 久久影视一区| 一区二区视频国产| 日韩电影免费网站| 亚洲三级一区| 99久久久久| 久久精品国产精品亚洲精品色| 91久久高清国语自产拍| 香蕉视频免费版| 欧美日一区二区三区在线观看国产免| 9999在线观看| 你懂的一区二区| 青青视频免费在线| 激情综合在线| 777精品久无码人妻蜜桃| 亚洲免费影视| 韩国中文字幕av| 麻豆国产欧美日韩综合精品二区| 天天爽夜夜爽一区二区三区| 久久成人精品无人区| 两性午夜免费视频| 国产成人免费av在线| 久久性爱视频网站| 久久夜色精品国产噜噜av| 日本xxxxxxxxx18| 国产精品网友自拍| 一区二区国产精品精华液| 亚洲永久免费av| 日韩欧美a级片| 欧美特级限制片免费在线观看| 中文字幕在线观看你懂的| 91麻豆精品国产91久久久使用方法| 国产后入清纯学生妹| 欧美精品一区二区在线观看| 欧美在线观看在线观看| 色噜噜国产精品视频一区二区| 成人日批视频| 清纯唯美亚洲综合| 综合久久av| 精品亚洲第一| 欧美独立站高清久久| 国产成人一区二区三区别| 国产美女精品| 午夜一区二区视频| av不卡在线播放| 国产男女猛烈无遮挡在线喷水| 亚洲综合激情另类小说区| 波多野结衣影片| 日韩欧美中文字幕制服| 黄色视屏网站在线免费观看| 久久视频这里只有精品| 三级中文字幕在线观看| 91理论片午午论夜理片久久| 欧美一性一交| 中文字幕在线中文| 久久亚洲风情| 国产成人精品无码片区在线| 国产精品色哟哟| 日韩免费视频网站| 欧美一区二区久久| 黄色片在线免费观看| 欧美激情视频给我| 日本午夜精品久久久久| 久久99导航| 国产综合自拍| 亚洲天堂国产视频| 久久欧美中文字幕| 国产无遮挡免费视频| 欧美精品乱码久久久久久| 欧美男男同志| 国内精品久久久久久久久| 视频欧美精品| 日韩精品福利视频| 99精品热6080yy久久| 中国老熟女重囗味hdxx| 欧美激情一区二区| 日本一区二区三区精品| 亚洲精品在线三区| 国产色在线观看| 国产在线一区二区三区| 欧美精美视频| 免费无码av片在线观看| 成人黄色网址在线观看| 福利所第一导航| 538prom精品视频线放| av电影在线网| 国产精品久久久久久久7电影| 欧美激情影院| heyzo亚洲| caoporm超碰国产精品| 欧美精品videos极品| 日韩欧美资源站| 天堂av在线电影| 91精品久久香蕉国产线看观看| 国产精品久久久久无码av| 午夜在线观看av| 欧美激情自拍偷拍| 中文字幕精品一区二区精| 亚洲视频第一页| av激情成人网| 日韩亚洲视频| 毛片av中文字幕一区二区| 一二三四在线观看视频| 欧美日韩精品欧美日韩精品一 | 国产精品69久久久久| 岳的好大精品一区二区三区| 逼特逼视频在线| 久久久亚洲精品石原莉奈| 无码免费一区二区三区| 亚洲欧美一区二区精品久久久 | 亚洲影院污污.| 亚洲欧美综合| 少妇被狂c下部羞羞漫画| 欧美日韩在线视频一区| 青青草视频在线免费观看| 国产精品99一区| 999国产精品| 欧美精品免费视频| 美女又爽又黄免费视频| 亚洲女人被黑人巨大进入| 日本精品不卡| 亚洲三区在线| 国产一区二区不卡老阿姨| 国产一级特黄视频| 日韩精品中文字幕有码专区| 三上悠亚国产精品一区二区三区| 亚洲 国产 日韩 综合一区| 精品伊人久久久久7777人| 麻豆国产尤物av尤物在线观看| 亚洲精品一区二区三区四区高清| 男人最爱成人网| 综合视频免费看| 成人aa视频在线观看| 成人免费视频国产免费| 丝袜情趣国产精品| ccyy激情综合| 成年人视频在线免费| 中文字幕一区二区三区在线播放 | 亚洲视频国产视频| 久久精品黄色| 欧美成人精品免费| 久久久久久久久97黄色工厂| 97精品久久人人爽人人爽| 欧美大片第1页| 成人精品视频| 精品1卡二卡三卡四卡老狼| 在线观看精品一区| 菠萝菠萝蜜在线视频免费观看| 久久久福利视频| 国产一区免费电影| 偷偷操不一样的久久| 日韩在线视频导航| 欧美电影免费网站| 99999精品| 日本黄色一区二区| 黑人玩欧美人三根一起进| 日韩欧美亚洲v片| 99re亚洲国产精品|