无线客户端框架设计(2):项目结构的设计(iOS篇)

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

本文附带源码:http://down.51cto.com/data/935164

在设计任何一个框架之前,都应规划好项目结构。

假定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就好了。

责任编辑:闫佳明 来源: cnblogs
相关推荐

2013-09-03 09:55:42

iOS无线客户端框架设计

2013-09-09 10:48:24

iOS无线客户端框架设计

2013-09-09 10:36:14

iOS无线客户端框架设计

2013-09-16 10:43:15

无线客户端框架设计iOSJSON

2013-09-03 09:10:56

2011-03-07 13:50:20

2013-03-14 10:12:54

视觉设计产品设计

2012-06-25 12:43:26

.NET框架

2023-03-31 13:31:45

2020-07-30 10:35:32

Java反射框架设计

2012-11-28 11:05:42

IBMdW

2012-01-18 10:20:42

框架设计

2012-06-25 09:28:42

.NET可逆框架

2009-06-12 19:18:08

REST客户端框架JavaScript

2009-09-16 16:09:41

NIS服务器客户端NIS

2011-07-07 13:21:56

UI设计

2012-02-10 10:27:54

WLANVDI

2009-09-08 09:12:12

LINQ构建框架设计

2024-11-04 08:00:00

Netty客户端

2016-03-23 11:05:58

Socket开发框架分析
点赞
收藏

51CTO技术栈公众号