基于同一工作空间静态链接库实现的分层可以有WLOOO和WLSOO模式,南昌APP开发公司小编简要介绍一下WLSOO模式。
1.使用工作空间
工作空间是多个工程的集合,我们可以把3个不同的层放置在不同的工程中,然后再把这3个工程放置到一个工作空间中。打开本节案例代码MyNotesWorkspace文件夹,再打开MyNotesWorkspace.xcworkspace文件,(.xcworkspace文件是工作空间文件),如图1所示。
图1Xcode工作空间
它们之间的依赖关系是:BusinessLogicLayer依赖于PersistenceLayer,PresentationLayer依赖于BusinessLogicLayer和PersistenceLayer,因此创建顺序应该是PresentationLayer→BusinessLogicLayer→PersistenceLayer。
2.添加数据持久层工程
数据持久层工程PersistenceLayer是静态链接库工程。找到本书提供的PersistenceLayer(位于MyNotesWorkspace的 PersistenceLayer目录下),添加静态链接库的过程是:在Xcode导航面板的右键菜单中选择Add Fileto“MyNotesWorkspace”...,接着在弹出的对话框中选择PersistenceLayer.xcodeproj文件,然后就可以将工程添加到工作空间了。
静态链接库提供给使用者的文件是.a文件和.h文件,前者是编译之后的静态链接库文件,后者是要调用对象的头文件。
.h文件在编译时会复制到产品发布目录下,具体设置如下:打开PersistenceLayer工程,选择TARGETS→PersistenceLayer→Build Phases,然后再选择Editor→Add Build Phase→Add Headers Build Phase菜单项即可。此时会打开复制头文件窗口,选择图2中的+按钮,从弹出界面中选择要复制的头文件,再点击Add按钮即可添加。
接着用鼠标将复制的头文件从Project栏拖曳至Public栏中,如图3所示。Public栏中.h文件可以被其他工程访问,在应用编译的时候可以复制到产品发布目录。
图2选择要复制的头文件
图3拖曳复制的头文件到Public栏中
3.建立业务逻辑层与数据持久层的依赖关系
BusinessLogicLayer工程也是静态链接工程,其创建过程和复制头文件等设定都与PersistenceLayer工程类似,不同的是 BusinessLogicLayer 依赖于PersistenceLayer 。打开 BusinessLogicLayer 工程,选择 TARGETS→BusinessLogicLayer→Build Phases→Link Binary With Libraries,如图4所示,点击左下角的+按钮,然后从弹出界面中选择libPersistenceLayer.a,再点击Add按钮,这样依赖关系就添加好了。
图4添加依赖关系
此外,还要添加头文件搜索设置,南昌APP开发公司的具体操作方法是:打开BusinessLogicLayer工程,选择TARGETS→BusinessLogicLayer→Build Settings→Search Paths→User Header Search Paths,如图5所示,在弹出的对话框中,添加$(BUILT_PRODUCTS_DIR),并选择recursive,其中$(BUILT_PRODUCTS_DIR)是宏,表示产品发布目录,recursive表示递归添加目录路径。
图5添加头文件搜索设置
设置完成后,可以编译一下BusinessLogicLayer工程,具体步骤是,如图6所示,选择运行的模拟器,然后通过快捷键command+B,或通过Product→Build菜单项进行编译。
图6编译静态链接库工程
4.建立表示层与业务逻辑层的依赖关系
PresentationLayer不是静态链接工程,需要与BusinessLogicLayer和PersistenceLayer建立依赖关系,具体的操作方法可参考BusinessLogicLayer工程。添加头文件搜索设置的具体方法,也可以参考BusinessLogicLayer工程。完成后的工作空间如图1所示。
由于表示层用Swift实现,业务逻辑层用Objective-C实现,所以Swift调用Objective-C时,需要添加桥接头文件Presentation- Layer-Bridging-Header.h,该文件的内容如下:
#import "Note.h"
#import "NoteDAO.h"
#import "NoteBL.h"
注意:如果BusinessLogicLayer和PersistenceLayer工程中有内容要修改,因为不会自动编译,需要先选择菜单项Product→Clean清除一下再编译。但是,有时候会报出找不到一些头文件的编译错误,这种情况下请多次执行清除操作再编译。
以上就是百恒网络为大家讲解的关于iOS开发的wlsoo模式,了解更多南昌APP开发技术资讯,欢迎来电咨询百恒网络,或者访问公司官网查看更多技术文章,网址:http://www.jxbh.cn/