前一段时间跟吴航在微博上私信聊天,他说正在写一本iOS方面的图书,我让他书出来的时候送一本给我。之后他在私信上跟我说书写完了,让我给写个序,我当即表示压力山大,但还是欣然答应了。我认识吴航是在2011年9
仔细阅读了本书从字里行间可以感受到作者的认真,在当今这个浮躁的大环境中,这是非常难得的,单从认真这点来看,这本书绝不是一本水货,强烈推荐大家阅读,尤其是初学者。本书的前六章侧重于理论的介绍,但又不
本章中,我们介绍了iOS平台的分层架构设计技术,归纳了10种分层模式,并且重点实现了8种模式。每一种模式都有其应用场景,总的原则是:优先考虑使用框架,如果从技术和设计上无法实现,考虑用静态链接库实现,最
为了适应在工作空间中使用框架,我们需要将代码进行重构。与10 8节不同,数据持久层框架工程头文件PersistenceLayer h和业务逻辑层框架工程头文件BusinessLogicLayer h内容不需要修改。只需要修改表示层Presenta
10 9 基于同一工作空间框架实现的WFOSS模式上一节介绍了基于同一工作空间框架实现的WFSOO模式,本节介绍一下WFOSS模式。10 9 1 设置Public头文件BusinessLogicLayer和PersistenceLayer都是框架工程,我们需要设
为了适应在工作空间中使用框架,我们需要将代码进行重构。1 数据持久层重构数据持久层重构可以参考10 7节,不同的是还需要修改框架工程头文件,它的命名是<框架工程> h。数据持久层框架工程头文件是Persistenc
由于表示层用Swift实现,业务逻辑层用Objective-C实现,所以Swift调用Objective-C时需要添加桥接头文件PresentationLayer-Bridging-Header h,该文件的内容如下: import <BusinessLogicLayer NoteBL h> import
10 8 基于同一工作空间框架实现的WFSOO模式上一节介绍了基于同一工作空间框架实现的WFOOO模式,本节介绍一下WFSOO模式。10 8 1 设置Public头文件BusinessLogicLayer和PersistenceLayer都是框架工程,我们需要设
为了适应在工作空间中使用框架,我们需要将10 4 3节的代码进行重构,重构的内容主要是修改引入头文件的方式。修改业务逻辑层BusinessLogicLayer引入头文件的方式,相关代码如下: import <Foundation Foundatio
由于表示层用Swift实现,业务逻辑层用Objective-C实现,所以Swift调用Objective-C时需要添加桥接头文件PresentationLayer-Bridging-Header h,该文件的内容如下: import import
10 7 基于同一工作空间框架实现的WFOOO模式上一节介绍了基于同一工作空间框架实现的WFSSS模式,本节介绍一下WFOOO模式。WFOOO模式的实现过程与WFSSS模式基本一样,只是WFOOO模式下需要将数据持久层和业务逻辑层
为了适应于在工作空间中使用框架,我们需要将10 4 1节的代码进行重构,这主要是修改访问类、方法和属性的访问限定级别。1 重构Note swiftNote类的代码如下:import Foundationpublic class Note {
三个工程的依赖是:BusinessLogicLayer依赖于PersistenceLayer,PresentationLayer依赖于BusinessLogicLayer。BusinessLogicLayer和PersistenceLayer都是框架工程,我们需要设置BusinessLogicLayer依赖于Persist
10 6 基于同一工作空间框架实现的WFSSS模式从上一节可见使用静态链接库比较麻烦,需要给使用者提供 a和 h文件,还要配置很多环境变量。根据表10-1所述,基于同一工作空间框架实现的分层可以有WFSSS、WFOOO、WFS
PresentationLayer不是静态链接工程,需要与BusinessLogicLayer和PersistenceLayer建立依赖关系,具体的操作方法可参考BusinessLogicLayer工程。添加头文件搜索设置的具体方法,也可以参考BusinessLogicLayer工程
BusinessLogicLayer工程也是静态链接工程,其创建过程和复制头文件等设定都与PersistenceLayer工程类似,不同的是BusinessLogicLayer依赖于PersistenceLayer。打开BusinessLogicLayer工程,选择TARGETS→ B
数据持久层工程PersistenceLayer是静态链接库工程。找到本书提供的PersistenceLayer(位于MyNotes Workspace的 PersistenceLayer目录下),添加静态链接库的过程是:在Xcode导航面板的右键菜单中选择Add File
10 5 基于同一工作空间静态链接库实现的WLSOO模式根据表10-1所述,基于同一工作空间静态链接库实现的分层可以有WLOOO和WLSOO模式,下面简要介绍一下WLSOO模式。10 5 1 使用工作空间工作空间是多个工程的集合,
Swift与Objective-C混合搭配在目前采用得比较多,这是因为很多老版本的项目还是使用Objective-C开发的。为了最大可能地利用老版本的代码,可以把基于Objective-C编写的业务逻辑层和数据持久层复用。由于iOS每次升
用纯Objective-C语言实现的分层架构如图10-12所示。打开本节案例MyNotes工程,如图10-13所示。在Xcode工程导航面板中,共有3个组,这类似于图上一节介绍的纯Swift语言实现的工程。下面介绍代码部分。在dao组中,