如何优化增强第三方库?
?
? ? ?開發(fā)中,我們不可避免要使用,別人花很多時間打磨好的輪子,輪子好用,但有時卻無法完全滿足我們的要去,這時我們不可避免的要去修改增強一下這個庫,如何增強?
? ? 我認為,一般有兩種修改的方式:1入侵式修改 2疊加式修改
? ? 1入侵式修改
? ? ? 如果涉及的地方邏輯較簡單清晰,那就直接找到目標處改它,改它的數(shù)據(jù),改它的UI。
? ? 2疊加式修改
? ? ? 如果涉及的地方邏輯較復雜冗長,草蛇灰線,牽一發(fā)動全身,那么最好少改原作者的代碼,應(yīng)該根據(jù)自己的需求,
? ? ? 新定義一些數(shù)據(jù)或UI控件,或新增一些自己的API,視情況而定。
?
?
案例1:修改IQKeyboarManager的完成按鈕,將英文Done改成中文
? ? ? ? 方式:找到定義該標題的地方,確定它在哪行代碼?或者哪個控件的定義處。
? ? ? ? 方案1:<1直接搜索Done關(guān)鍵字,但發(fā)現(xiàn)搜索出的條目太多,不好找,先不用
? ? ? ? 方案2:<1間接搜索其位于同一父控件的上下箭頭,發(fā)現(xiàn)搜出來的條目只有三個,好!,縮小范圍了,
? ? ? ? ? ? ? ? ? ? ? ?確定目標到了某個幾文件內(nèi)
? ? ? ? ? ? ? ? ? <2在那幾個文件內(nèi),再次搜Done關(guān)鍵字,發(fā)現(xiàn)可疑目標控件,就注釋,看是否被我消失了
? ? ? ? ? ? ? ? ? ? ?舊版本很快找到了,新版本沒找到
? ? ? ? ? ? ? ? ? <3然后在一群可疑的doneAction方法內(nèi)打斷點,我點擊done按鈕,看哪個方法能監(jiān)聽到事件
? ? ? ? ? ? ? ? ? ? ?最后定位到一個方法,順著方法的控件,就找到目標控件了 ? ? ? ? ? ? ? ? ? ? ?
?
案例2:修改一個tag選擇控制器
? ? ? ?1一開始使用入侵時修改,但邏輯較復雜冗長,沒去仔細看,就改為疊加式修改
案例3:增強MJExtension
? ? ? 注意點:添加新文件到MJExtension,不僅要添加到該target,也要添加到測試那兩個框架,否則會報錯。
? ? ? ? ? ? ? ? ??
轉(zhuǎn)載于:https://www.cnblogs.com/dzq1991/p/6520611.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的如何优化增强第三方库?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不错的Mac软件下载网站
- 下一篇: LeetCode 24 Swap Nod