同一工程下的分层项目:使用静态库来创建,通过 .a 文件来连接工程之间的联系
File-->New-->Project 选择 CoCoa Touch Static Library (静态库)
填写名称 LibraryDemo
创建完成的目录
在 LibraryDemo.h 里面写入可以测试的代码
#import <Foundation/Foundation.h> @interface LibraryDemo : NSObject -(void)printHelloWorld; @end
LibraryDemo.m 代码
#import "LibraryDemo.h" @implementation LibraryDemo -(void)printHelloWorld{ NSLog(@"HelloWorld"); } @end
以上是 LibraryDemo 工程的代码
现在要准备做些设置,此时的静态库还没有准备
选择工程 LibraryDemo 1 --> TARGETS --> 2 LIbraryDemo -->3 Build Phases
接下来,点击4 "+" 号 选择 New Headers Phase
选择 Hearders 点击" + "
选择我们需要对外的头文件(LibraryDemo.h)
然后,我们编译下 LibraryDemo 工程.
编译成功 , Succeeded
我们创建一个 MyAppDemo 工程
New --> Project --> Application --> 选择 SingleViewApplication 模板
MyAppDemo--> TARGETS --> 选择 MyAppDemo --> Build Phass 选择 Link Binary With Libraries
添加,我们刚才 LibraryDemo 工程的.a 文件
工程下面就会出现 libLibraryDemo.a 文件
选择 ViewController.m 我们来测试下代码
这里出现了,头文件无法提示,说明我们头文件并没有在 MyAppDemo 工程下
接下来我们设置MyAppDemo
选择 TARGETS -->MyAppDemo
在 BuildSettings 搜索 User Header Search Paths
在里面添加 $(BUILT_PRODUCTS_DIR) 并设置 recursive
完成后
现在代码可以检索到了
这是我们 LibraryDemo 工程下的文件,并且运行可以打印出 HelloWorld
静态库创建完成.
那么接下来,我们来看看,静态库之间如何关联并在工程上使用
我们按照 LibraryDemo 的步骤创建一个 LibraryDemo2
创建完成的工程目录结构
设置LibraryDemo2 工程 已在上面步骤讲述过,这里不在陈述
设置 BuildSettings 添加 搜索头文件$(BUILT_PRODUCTS_DIR)
接下来,修改 LibraryDemo2.h 代码
然后我们在 LibraryDemo2.m 重写 LibraryDemo.h 的 printHelloWorld
好了,我们再编译下.
并把libLibraryDemo2.a 文件添加如图
注意:如果 LibraryDemo2 文件找不到,请确认,你是否编译过 LibraryDemo2 或 是否编译出错.
现在我们修改下 ViewController.m 代码,检测下是否运行正常
现在的项目分层是:
MyAppDemo
LibraryDemo2
LibraryDemo
MyAppDemo 做表现层可以分成两层 iPhone / iPad
LibraryDemo2 可以做业务层
LibraryDemo 是最底层.可以做数据访问层