如果你是IOS的新手,並有.net開發的背景(就像我一樣),你可能到處去找,哪里有dll呢?
其實,IOS平台是使用框架而不是dll,框架里面包含公共頭文件和二進制文件。很不幸,XCode並不支持你自己去創建框架。
對於一個開發人員,這是個大問題,b/c缺少框架,我們就不得不去創建一個靜態庫文件。但是使用lib文件是一件痛苦的事情。實質上,向工程添加庫的引用,並告訴功能工程在哪里可以找到你的頭文件,這對於用戶體驗並非一件好事
所以我們應該如何突破這個限制呢?
在查閱過大量的資料之后,我發現在gitHub上有一個非常驚人的開源項目:iOS-Universal-Framework. 這個工程基本上是一個項目模板。你只需安裝這個項目,現在你就多了一個新選擇來創建項目。
現在,讓我們討論安裝過程還有如何使用它:
- 下載zip文件.
- 保證你放在一個地方,並方便日后使用。B/C工程模板,每次你更新XCode的時候,你都需要重新安裝這個項目模板(不要擔心,安裝過程非常的快)。
- 確保XCode已完全關閉
- 解壓縮zip文件並轉到文件夾:Real Framework/install.sh(如果不行,你還要運行Fake Framework/install.sh)
- 如果你熟悉使用命令終端,只需運行install.sh。如果你不熟悉,那么只需把它改名為 install.sh.command 並雙擊運行它。
- 當它開始運行,它會詢問你:XCode安裝在哪里。如果你沒有修改過默認XCODE的安裝路徑,只需回車確認。
- 然后它會再詢問你,需要安裝在什么地方。只需敲入y並回車。
- 輸入密碼,回車
- 等待安裝結束
- 打開Xcode並打開New Project窗口。
- 在IOS選擇框架和庫的地方,你會發現多了一個選擇“Static iOS Framework”
現在,你有了一個全新的框架!但是,你應該如何使用它?
你基本上可以把它當做一個普通工程。但是,當你需要創建公共的API的時候,你需要告訴它。
現在讓我們一步一步創建一個框架,發布你的公共API,並使用它!
- 使用new project對話框創建你的框架
- 你現在創建了一個空白的項目。現在我們添加一個新的類。在這個例子中,我們添加一個UIView的類,名字叫做MyView.
- 現在,我需要這個API供使用這個框架的開發者能正常使用,我需要讓.h文件變為公共。點擊項目導航器的項目,並選擇build phase:
當你點擊擴展Copy Header面板,你會看到3個選項,Public, Private和 Project。默認設置的話,當你添加一個新的文件,它會在project中可見。當你需要把它改變為public,只需把頭文件拖到public面板中。
4. 讓我們在class中輸入一些代碼:
01 |
@implementation MyView |
02 |
-(id)init |
03 |
{ |
04 |
self = [super init]; |
05 |
if (self) |
06 |
{ |
07 |
self.backgroundColor = [UIColor orangeColor]; |
08 |
} |
09 |
return self; |
10 |
} |
11 |
@end |
我們把我們的View的默認背景顏色設為橙色
5. 現在下一步是可選的。但是我的觀點是最好也配置一下。如果你使用Apple的默認框架的時候,你會發現import語句就像:#import UIKit/UIKit/.h 或者 #import QuartzCore/QuartzCore.h 。這有個優點,就是你知道框架的名字,然后知道引用哪個頭文件。這些頭文件在框架中全部是public的API。所以你不需要添加一堆頭文件。
所以讓我們按如下步驟來做。
第一,打開 Add New File對話框,並添加頭文件:
為頭文件命名(跟框架的名字一樣),在頭文件里面,加入#import語句,添加你的框架中所有的公共頭文件。
現在,不要忘記了在Build Phase面板它把變為PUBLIC!!!(步驟3)
6. 編譯項目,現在就可以使用它了。
7. 創建一個新工程,對於這個例子我們就創建一個簡單的View應用,叫做MyApp.
8. 當項目創建后,點擊項目面板,並下拉到"Linked Frameworks and Libraries Section",並點擊加號按鈕:
現在點擊“Add Other”按鈕跳至你的框架頁面:
是時候寫些代碼了!
9. 首先打開ViewController.m文件,寫入你的代碼:
10. 運行你的項目,你就會看到如下畫面:
你現在就完成了一個框架,可以在不同的項目和組之間共享這個框架了!
我希望這篇文章對你來說是有用的。