1. 程式人生 > >熱修復JSPatch之實戰教程

熱修復JSPatch之實戰教程

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之實戰教程