??接上篇《熱修復jspatch之接口設計》,在這篇文章主要給大家講述一下如何快速具備熱修復能力,當然了如果有人有志于把JSPatch系統的學習,甚至用JSPatch進行開發的,就沒有必要聽我在這里啰嗦了。
??我這里只介紹一些簡單常用的。
1. require在使用Objective-C類之前需要調用 require('className’) :require('UIView')var view = UIView.alloc().init()可以用逗號 , 分隔,一次性導入多個類:require('UIView, UIColor')var view = UIView.alloc().init()var red = UIColor.redColor()或者直接在使用時才調用 require() :require('UIView').alloc().init()2. 調用OC方法調用類方法var redColor = UIColor.redColor();調用實例方法var view = UIView.alloc().init();view.setNeedsLayout();參數傳遞跟在OC一樣傳遞參數:var view = UIView.alloc().init();var superView = UIView.alloc().init()superView.addSubview(view)PRoperty獲取/修改 Property 等于調用這個 Property 的 getter / setter 方法,獲取時記得加 ():view.setBackgroundColor(redColor);var bgColor = view.backgroundColor();方法名轉換多參數方法名使用 _ 分隔:var indexPath = require('NSIndexPath').indexPathForRow_inSection(0, 1);若原 OC 方法名里包含下劃線 _,在 JS 使用雙下劃線 __ 代替:// Obj-C: [JPObject _privateMethod];JPObject.__privateMethod()3.defineClassAPIQQqq defineClass(classDeclaration, instanceMethods, classMethods)@param classDeclaration: 字符串,類名/父類名和Protocol@param instanceMethods: 要添加或覆蓋的實例方法@param classMethods: 要添加或覆蓋的類方法在使用的過程中發現property屬性命名,方法命名要嚴格按照駝峰式命名,禁止在屬性名,或者方法名中間使用下劃線'_' 此處要格外注意哦,血的教訓積累出來的經驗,如果使用了,會造成無法修復 如果想查看完整的教程可以點擊查看
在實踐的過程中發現,大部分人對于js方法不是很熟悉,寫起來很慢,給大家找到了轉換的網站轉換網站地址
當然,轉換后,我們是不能直接拿來用的,還是用很多的問題,比如宏定義無法使用,相關方法轉換錯誤,js語法錯誤等等,我們可以使用下面的一個網站來進行js語法校驗 js校驗網址
通過上面的轉換,校驗,我們開始嘗試在本地修復我們的bug,如果可以修復,并經過測試后,我們就可以上傳我們的熱修復腳本了。感興趣的小伙伴可以嘗試一下哦,下面是我寫的一個小demo。 JSPatch修復demo
新聞熱點
疑難解答