1.出錯原因:
dsBridge調(diào)用原生方法出現(xiàn)閃退bug,有的是只在release模式下崩潰等問題。dsBridge出錯代碼如下:

當執(zhí)行到ret=action(JavascriptInterfaceObject,sel,arg);語句時,如果原生的函數(shù)返回nil,這樣就變?yōu)閞et = nil;這就是奔潰的原因。具體來講,和調(diào)用方法是否有返回值有關(guān);以前也知道performSelector編譯器不會對對象,方法,進行檢驗,會有內(nèi)存泄露的可能產(chǎn)生;performSelector會把編譯時做的事情放到了運行時期,因為不知道即將調(diào)用的selector是否有返回值,只有到了運行期才去檢測,調(diào)用了返回值為Void的一些函數(shù),相當于直接是 id obj = void,當然是OC語法不允許的,直接崩潰是必然的。
鏈接:http://www.itdecent.cn/p/4a9285c697e7;http://www.itdecent.cn/p/31b38a1369e2
2.解決方法:
定義調(diào)用OC或swift方法時,要返回非nil的值,這樣就不會崩潰了!
如下圖:-> 中的String不要用Void或者可選類型,return一定為不為nil的值。
