標籤:

iOS開發,IB的效率和Code的效率哪個更高?


首先你沒有說是開發什麼應用。當然做遊戲一般用不到 IB,所以我默認你問的是用 UIKit 控制項做應用類 App。

開發效率:

對於大多數情況,IB 佔優。

用 UIKit 標準控制項及其衍生控制項做開發時,IB 的效率較高。因為無論是設置控制項的屬性還是定位控制項的位置,IB 都更加直觀,更加"所見似所得",免去了用代碼進行控制項布局時不得不多次嘗試調整的問題,效率相對較高。

但是當多人協作時,如果需要一個以上的開發者同時修改某個 xib 文件,版本管理時會比較痛苦——雖然 IB 是用 XML 保存的文本文件,但是當你 merge 兩個人的代碼遇到衝突時,還是很頭疼的一件事情,這就涉及到分工和拆分 xib 的問題,不做具體展開了。

總的來說,IB 效率較高。

執行效率:

代碼較為靈活,內存管理更加精確可控。

首先要說一下的是,同樣生成一定數量的控制項,IB 的效率應該會比 Code 生成的略高。因為 xib 文件在編譯後即變成了二進位的 nib 文件,在程序運行時可以直接載入內存,因此效率可能會比用 Code 生成略高。但是應該是屬於可以忽略不計的程度。尤其是後面提到的 Code 可以靈活的控制哪些控制項需要被載入時,用 Code 生成效率反而更高。

那麼用 Code 的好處是什麼呢?

首先,某些並不需要一直顯示的控制項你可以靈活地在需要時才創建,而不是像 IB 一樣一股腦兒全都生成出來。這對於改善首次載入某個 UIViewController 的速度是很有幫助的,對於優化程序的內存佔用也很有幫助。

而且在不需要某個控制項時,你可以及時的將其釋放,騰出更多內存來為其他任務服務。

這些優勢都是 IB 所不能提供的。也因此在執行效率上,Code 生成反而會較佔優勢。

另外做某些 Library 時,我們也會盡量避免使用 IB,這樣 Library 的代碼維護和在其他項目中進行調用都更為方便。

綜上所述,並沒有絕對的 IB 好還是 Code 好之說,需要根據實際情況進行選擇,各取所長。最常見的情況是, IB 和 Code 並用。


最好是用Code,最好是使用一些第三方庫,比如Three20.


這個效率可能要從兩個方面來看,

第一是運行效率。IB設計的view經過預處理保存在xib文件,使用的時候需要載入xib文件;使用code編寫的view在運行時通過執行code在內存中創建view。個人認為這兩者的運行效率是差不多的,有差異也可以忽略不計。

第二是開發的效率。毫無疑問使用IB製作view的效率比寫Code要高很多。如果需要實現一些動態效果,一般通過設置並連接IBOutlets來實現(其實這就是IB+Code混用)。除非是很簡單的view或者出於學習目的,否則不推薦完全使用Code創建view。


UI主要是系統控制項的話,IB做起來效率更高,畢竟設置位置和屬性是非常繁瑣和麻煩的一項工作,但是如果UI多數用自定義的圖片的話,最好用Code寫,因為很多情況是IB解決不了的


IB不過是靜態對象圖(比如界面控制項)的編輯器和序列化工具而已

如果用不到靜態對象圖(比如全動態的對象圖、控制項圖),IB就派不上用場了,更談不上效率


一般來說作應用的話IB還是快很多,比如設置位置,陰影等,所見即所得。但是IB在多人合作的時候很容易出問題。


作應用肯定ib高啊,你知道什麼叫改需求,什麼叫改設計稿么?

另外關於lib,lib是可以打包xib的。

關於載入效率,差別很小,除非你一定要在一個ib中放多個top view。


推薦閱讀:

iOS 11 新功能:「一鍵激活」設備
頂級配置的 Android 手機和 iPhone 的體驗有什麼不同?
蘋果在全球三大市場份額均下滑,衰退無法扭轉!
怎麼看 iPhone 5 在中國首周末銷量達 200 萬部?
如何進階學習iOS開發?

TAG:iOS | iOS開發 |