熱修復JSPatch之實戰教程
阿新 • • 發佈:2018-02-18
link mark sde 方法名 rac 實戰 xpath release 定義
??接上篇《熱修復JSPatch之接口設計》,在這篇文章主要給大家講述一下怎樣高速具備熱修復能力,當然了假設有人有誌於把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. defineClass
API
qqqq defineClass(classDeclaration, instanceMethods, classMethods)
@param classDeclaration: 字符串,類名/父類名和Protocol
@param instanceMethods: 要加入或覆蓋的實例方法
@param classMethods: 要加入或覆蓋的類方法
在使用的過程中發現property屬性命名,方法命名要嚴格依照駝峰式命名,禁止在屬性名,或者方法名中間使用下劃線‘_‘
此處要格外註意哦,血的教訓積累出來的經驗。假設使用了。會造成無法修復
假設想查看完整的教程能夠點擊查看
在實踐的過程中發現,大部分人對於js方法不是非常熟悉,寫起來非常慢,給大家找到了轉換的站點轉換站點地址
當然,轉換後,我們是不能直接拿來用的,還是用非常多的問題。比方宏定義無法使用,相關方法轉換錯誤,js語法錯誤等等,我們能夠使用以下的一個站點來進行js語法校驗 js校驗網址
通過上面的轉換。校驗。我們開始嘗試在本地修復我們的bug。假設能夠修復,並經過測試後,我們就能夠上傳我們的熱修復腳本了。感興趣的小夥伴能夠嘗試一下哦。以下是我寫的一個小demo。 JSPatch修復demo
熱修復JSPatch之實戰教程