同一工程下的分层项目:使用静态库来建立,经过 .a 文件来链接工程之间的联系测试
File-->New-->Project 选择 CoCoa Touch Static Library (静态库)ui
填写名称 LibraryDemospa
建立完成的目录code
在 LibraryDemo.h 里面写入能够测试的代码 blog
#import <Foundation/Foundation.h> @interface LibraryDemo : NSObject -(void)printHelloWorld; @end
LibraryDemo.m 代码it
#import "LibraryDemo.h" @implementation LibraryDemo -(void)printHelloWorld{ NSLog(@"HelloWorld"); } @end
以上是 LibraryDemo 工程的代码io
如今要准备作些设置,此时的静态库尚未准备编译
选择工程 LibraryDemo 1 --> TARGETS --> 2 LIbraryDemo -->3 Build Phases 模板
接下来,点击4 "+" 号 选择 New Headers Phaseclass
选择 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 是最底层.能够作数据访问层