项目结构的设计(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。

3)在MyLib中实现几个方法,build一次。

4)创建项目的project,命名为MyApp

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

先在Target中,选中Summary这个Tab,添加libMyLib.a的引用:

然后在Project中,选中Build Settings这个Tab,查找关键字Header Search Path,

在搜索到的结果中,选中Header Search Path,添加路径,记得选择recursive:

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

最后,会发现,项目中,多了一个libMyLib.a,将其转移到Frameworks目录下:

6)在MyApp中使用MyLib的方法

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

#import "MyLib.h"

然后编写以下代码:

如果编译不出错,就说明添加引用成功了。否则,请检查1-4步。

同时,如果编译不出错,你会发现,在调试期间,你可以同时调试MyApp和MyLib两个项目里面的代码。而这非常重要。

最终截图如下:

如果以后对MyLib进行了修改,比如,我将add方法的实现修改为

,这时,MyApp是不知道的,仍然返回修改之前的结果(a1+a2)。这时,我们需要额外做一些事情,才能让MyApp知道MyLib的修改。步骤如下:

1)删除MyApp中对libMyLib的引用。

2)对修改过的MyLib项目,先Clean再Build。

3)在MyApp项目中重新添加对MyLib项目的引用。

也许你会觉得麻烦,但是框架一旦稳定下来之后,修改就不是那么频繁了,所以上述那么麻烦的事情不会经常去做。而且,一般而言,框架只会由一个人维护,所以只要他每次修改框架并相应更新项目后,发封邮件通知到家更新Git就好了。

 
 
分类: App开发

最新文章

  1. c++文件输入输出流fstream,对输入>>和输出<<重载
  2. 学习C++.Primer.Plus 10 对象和类
  3. 使用java库中的对称加密算法
  4. linux 下调试 汇编
  5. zabbix邮件报警
  6. 多线程操作(循环往listbox中添加数据)
  7. NEV_SDK开发环境部署手册
  8. Linux下对后台进程通过kill传递信号不起作用的问题
  9. Yii中CDbCriteria常用总结
  10. Git 版本管理基本操作
  11. CentOS 下配置CUPS
  12. 带着新人看java虚拟机02
  13. C#socket编程之实现一个简单的TCP通信
  14. XamarinSQLite教程添加索引
  15. vue调用支付接口
  16. BigDecimal四舍五入保留两位小数
  17. 压缩文件破解rarcrack-支持格式zip,rar和7z
  18. 本地服务器搭建服务:ftp
  19. Java通过Fork/Join来优化并行计算
  20. CSS3和jQuery实现的自定义美化Checkbox和Radiobox

热门文章

  1. robot framework用python扩展编写自定义library
  2. nginx 开展对RT5350
  3. Swift-开发 # 1.2版本迁移
  4. http层负载均衡之haproxy
  5. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈
  6. asp.net 发邮件
  7. PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4
  8. Linux server关闭自己主动
  9. C语言库函数大全及应用实例十四
  10. Android的5样的调试信息