----------------------------------------------------------------------------------------------------------------------------
更新記錄
2016年3月4日
<a href="http://www.cnblogs.com/zhanggui/p/5157177.html" target="_blank">一、前言</a>
場景一:我們在做ios開發的過程中,難免會由于自己的不細心導緻一些小問題。如果産品沒上線之前發現還好,如果上線了才發現問題,那麼問題就大了,可能直接影響kpi,更嚴重的甚至直接面臨着fire。
場景二、一旦上線的産品,如果臨時遇到需求變動,那麼久必須重新修改代碼。一旦修改了項目代碼的話,我們就必須重新發版。這樣豈不是很麻煩?
現在就來讓我們看一下jspatch,它的出現可以在不發版的情況下動态的自行修複或者添加新的需求。
二、jspatch簡介
jspatch:它是一個第三方類庫,位址如下:
它是javascript和oc之間的橋梁,你可以在js檔案中去調用任何oc類和方法,然後在js檔案中去動态修改oc類。達到不重新發版就更新的效果。它主要是使用的oc runtime實作的。我們可以使用它熱更新自己的ios app。
三、jspatch使用
然後添加如下代碼在
添加如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
其中的demo.js就是我們需要手動去寫的一個js代碼:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
require('uiview,uicolor');
defineclass('viewcontroller',{
changebgcolor:function() {
var view = self.view();
view.setbackgroundcolor(uicolor.yellowcolor());
return view;
}
});
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
我們可以簡單看一下demo.js的内容。其中的viewcontroller就是我們需要更改的類的類名,changebgcolor就是類viewcontroller中的一個方法,我們可以通過該js去重寫該方法,達到不更新oc代碼就可以修改程式的效果。
四、項目中的使用
這裡就隻是簡單的說一下使用,我們可以讓背景寫一個接口,通過該接口去拿到伺服器上的js檔案,然後動态修改伺服器上js檔案,就可以達到熱更新的效果。
五、更多
六、附