Swift与Objective-C混合搭配在目前采用得比较多,这是因为很多老版本的项目还是使用Objective-C开发的。为了最大可能地利用老版本的代码,可以把基于Objective-C编写的业务逻辑层和数据持久层复用。由于iOS每次升级,表示层的API变化都很大,所以表示层一般很难复用,可以采用Swift语言重构。
采用Swift与Objective-C混合搭配的分层架构如图10-14所示。打开本节案例MyNotes工程,如图10-15所示,在Xcode工程导航面板中,共有3个组——PresentationLayer、BusinessLogicLayer和PersistenceLayer, PresentationLayer使用的语言是Swift,BusinessLogicLayer和PersistenceLayer使用的语言是Objective-C。
Swift调用Objective-C对象时,需要添加桥接头文件MyNotes-Bridging-Header.h,该文件的内容如下:
#import "Note.h"
#import "NoteDAO.h"
#import "NoteBL.h"
在桥接头文件中引入头文件,是在Swift代码中调用Objective-C对象所需要的头文件。关于具体的调用实现,大家可以参考我们编写的《Swift开发指南》一书。