項(xiàng)目中之前有過這樣的場(chǎng)景,iOS8系統(tǒng)上的APP,當(dāng)輸入框(textField/textView)處于編輯狀態(tài)的時(shí)候,鍵盤彈出此時(shí),按下home鍵進(jìn)入后臺(tái),APP崩潰了。。。
報(bào)錯(cuò)如下:
[UIKeyboardLayoutStar release]: message sent to deallocated instance
查閱資料發(fā)現(xiàn),使用MethodSwizzle 實(shí)現(xiàn)對(duì)數(shù)組、字典 等系統(tǒng)方法的安全校驗(yàn)。顯然能達(dá)到預(yù)期效果,但實(shí)際發(fā)現(xiàn)當(dāng)鍵盤顯示的情況下 home app 進(jìn)入后臺(tái),再單擊app 圖標(biāo) 切換回前臺(tái)時(shí) 發(fā)生crash,我的項(xiàng)目原因是替換了NSMutableArray 的objectAtIndex:( NSMutableArray和 NSArray 的objectAtIndex:都有替換,經(jīng)驗(yàn)證單獨(dú)替換 NSArray 的objectAtIndex:方法則不會(huì)引起crash)需要在build phases中找到Compile Sources,繼而找到使用NSMutableArray Swizzle的分類,禁用ARC

image.png