十年专注于品牌网站建设 十余年专注于网站建设_小程序开发_APP开发,低调、敢创新、有情怀!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

iOS开发之基于同一工作空间静态链接库实现的WLSOO模式

百恒网络 2017-06-06 4641

基于同一工作空间静态链接库实现的分层可以有WLOOO和WLSOO模式,南昌APP开发公司小编简要介绍一下WLSOO模式。

1.使用工作空间

工作空间是多个工程的集合,我们可以把3个不同的层放置在不同的工程中,然后再把这3个工程放置到一个工作空间中。打开本节案例代码MyNotesWorkspace文件夹,再打开MyNotesWorkspace.xcworkspace文件,(.xcworkspace文件是工作空间文件),如图1所示。

1Xcode工作空间

图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选择要复制的头文件

拖曳复制的头文件到Public栏中

图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/

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×