公司突然给了个需求,要把另一个项目整合到当前的项目里面,说是大部分页面代码共用少部分差别。后来我想了想,这个需求理论上是可以做的,但是要看两个项目的差别多大,其次!代码写得是不是很规范,耦合性高不高,在我看来我接手的项目代码写得很乱所以不赞成的,但是上面的要求,我还是去研究了一下具体的实现方案。
就如标题所说的,多个target的创建和一些配置而已,直接上图:
①直接复制,会在下方多出一个 同名+copy 的target
②双击修改名称成你想要的名字
③添加宏定义
④同样,在原来的target添加宏定义,值=0,(注意debug和release一起加)
⑤修改bundleIdentifier和displayName。
⑥修改启动图和icon。
⑦在pch文件使用
⑧在.m文件代码中使用(我这是AppDelegate里面的didFinsh方法里面,在这里控制keywindow等就可以控制根试图,首页等差别文件)
⑨切换target运行,可以发现导入的头文件和.m文件的输出和预期一样。
⑩新建文件的时候或者拖入文件的时候记得选择合适的target,谁需要用到这个文件就选谁,都需要就全选(全部全选的话,应该会给编译带来弊端)
*顺便说一下,新建一个目录来管理另一个target的专属文件,也就是差异文件,使项目结构清晰易读。
*还有target也是可以直接点击+号新建的,这样建出来的target会附带很多文件
可以看到,跟全新的项目一样,需要慢慢配置,我没去仔细研究,有兴趣的自己试试
最后,理解了这层作用以后,以后新写的项目尽量把这个问题考虑进去,代码封装好一些,耦合性低,复用性高,方便以后扩展。