無線客戶端框架設計(2):項目結構的設計(iOS篇)


本文附帶源碼:YoungHeart-Chapter-02.zip

 

在設計任何一個框架之前,都應規划好項目結構。

 

假定Git作為我們的項目管理工具。我們要建立兩個倉庫,一個用於存放我們的框架,另一個用於存放我們的項目,后者引用前者。

對於iOS而已,大部分開發者已經習慣於就一個project,所有的功能、頁面都做在上面,倒也沒錯。然而我現在要做的是,要讓我所設計的框架,脫離於項目而存在,這樣,明天我也許會做另一個項目,但是所使用的框架確是同一個。

為此,iOS需要用到workspace的概念。它相當於.NET中的solution文件,在.NET中,我們可以在一個solution中添加多個project,同理,在iOS中,我們也可以在一個workspace中添加多個project。

 

搭建步驟如下:

1)新建一個空的workspace

選擇 File -> New -> Workspace , 將 Workspace 命名為 YoungHeart。

2)創建框架的project,命名為MyLib。

201309020935.jpg

3)在MyLib中實現幾個方法,build一次。

201309020934.jpg

4)創建項目的project,命名為MyApp

201309020938.jpg

5)在MyApp中添加對MyLib的引用

先在Target中,選中Summary這個Tab,添加libMyLib.a的引用:

201309020941.jpg

然后在Project中,選中Build Settings這個Tab,查找關鍵字Header Search Path,

201309020947.jpg

在搜索到的結果中,選中Header Search Path,添加路徑,記得選擇recursive:

201309020953.jpg

添加路徑后效果如下所示:

201309020954.jpg

最后,會發現,項目中,多了一個libMyLib.a,將其轉移到Frameworks目錄下:

201309020955.jpg

6)在MyApp中使用MyLib的方法

在MyApp的ViewController.m文件中,首先添加對MyLib項目的引用:

#import "MyLib.h"

然后編寫以下代碼:

201309021000.jpg

如果編譯不出錯,就說明添加引用成功了。否則,請檢查1-4步。

同時,如果編譯不出錯,你會發現,在調試期間,你可以同時調試MyApp和MyLib兩個項目里面的代碼。而這非常重要。

最終截圖如下:

201309020903.jpg

 

如果以后對MyLib進行了修改,比如,我將add方法的實現修改為

201309021017.jpg

,這時,MyApp是不知道的,仍然返回修改之前的結果(a1+a2)。這時,我們需要額外做一些事情,才能讓MyApp知道MyLib的修改。步驟如下:

1)刪除MyApp中對libMyLib的引用。

2)對修改過的MyLib項目,先Clean再Build。

3)在MyApp項目中重新添加對MyLib項目的引用。

 

也許你會覺得麻煩,但是框架一旦穩定下來之后,修改就不是那么頻繁了,所以上述那么麻煩的事情不會經常去做。而且,一般而言,框架只會由一個人維護,所以只要他每次修改框架並相應更新項目后,發封郵件通知到家更新Git就好了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM