前幾天項(xiàng)目出現(xiàn)一個(gè)bug乎婿,由于啟動(dòng)時(shí)在viewDidLoad里面干的事情太多了测僵,卡住了,這個(gè)時(shí)候測(cè)試人員重復(fù)點(diǎn)擊了頁(yè)面上的一個(gè)按鈕谢翎,按鈕點(diǎn)擊事件是創(chuàng)建一個(gè)新的VC并push捍靠。這樣就導(dǎo)致push了多個(gè)相同的VC,點(diǎn)擊返回pop的時(shí)候崩潰了森逮。其實(shí)之前也遇到過(guò)push多個(gè)相同的VC的情況榨婆,但是大不了一級(jí)級(jí)的pop返回,也沒(méi)見(jiàn)崩潰褒侧,但是這次崩潰了良风,log說(shuō)是數(shù)組越界,而且是一個(gè)隨機(jī)的巨大的數(shù)導(dǎo)致越界闷供,沒(méi)搞明白為什么烟央。。歪脏。所以為了防止這種多次push相同VC的事情再發(fā)生疑俭,我想了個(gè)辦法,在push之前先取出UINavigationController的棧頂VC唾糯,判斷是否是同一個(gè)類的VC怠硼,不是那就創(chuàng)建并push鬼贱,是就不push了移怯!看代碼:
其實(shí)邏輯很簡(jiǎn)單。所以我覺(jué)得如果語(yǔ)言本身能多一個(gè)Bool屬性这难,控制能否允許相同類的VC多次push舟误,默認(rèn)NO,不允許姻乓。其實(shí)我覺(jué)得應(yīng)該不會(huì)有出現(xiàn)要同時(shí)push多個(gè)相同類的VC的邏輯嵌溢。但是我旁邊的小伙伴說(shuō),沒(méi)準(zhǔn)就有這種變態(tài)的需求呢蹋岩。赖草。。
大家覺(jué)得我這個(gè)建議怎么樣剪个。歡迎廣大程序猿回復(fù)看法秧骑,如果很多人都認(rèn)同,沒(méi)準(zhǔn)蘋(píng)果爸爸一高興就采納了呢,雖然也不是什么大的優(yōu)化:跽邸绒疗!