OKWatchDog 打造一个安全的容器类
生活随笔
收集整理的這篇文章主要介紹了
OKWatchDog 打造一个安全的容器类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
簡(jiǎn)介
對(duì)于APP開發(fā)來講, APP Crash是一件令開發(fā)者頭疼的事情.特別是線上崩潰,在Apple禁止熱更新方案后,這種問題更加沖突.
之前有幸讀到網(wǎng)易的開發(fā)者陶澤宇的文章大白健康系統(tǒng)--iOS APP運(yùn)行時(shí)Crash自動(dòng)修復(fù)系統(tǒng),本人深受啟發(fā),鑒于作者并沒有開源SDK, 因此我這個(gè)小白開發(fā)者嘗試著自己實(shí)現(xiàn)之.
分析介紹
容器類崩潰一般有兩個(gè)原因: 1: 存入的數(shù)據(jù)不是非空對(duì)象 2: 獲取的數(shù)據(jù)超過了邊界 解決的方案也有很多,比如自己實(shí)現(xiàn)一個(gè)安全的方法或利用runtime技術(shù)替換方法, 本人將采用的是利用runtime技術(shù)解決. 技術(shù)實(shí)現(xiàn)很簡(jiǎn)單,關(guān)鍵是該防護(hù)哪些類的哪些方法才是需要我們耐心去分析的.
NSArray和NSMutableArray
id value0; id value1; 方式一: NSArray *array = @[value0, value1]; 報(bào)錯(cuò): "*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]" 方式二: 復(fù)制代碼轉(zhuǎn)載于:https://juejin.im/post/5aed54e5f265da0b8d41cf8e
總結(jié)
以上是生活随笔為你收集整理的OKWatchDog 打造一个安全的容器类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python会干掉Java, 一统天下?
- 下一篇: 面试题:彻底理解ThreadLocal