iOS开发framework时,多个framework之间的访问
[TOC]
前言
当我们开发
framework
时,在同时将多个自定义framework
引入项目,framework
如果想要达到之间相互访问(比如frameworkA
想要访问frameworkB
中的HelloWorld.h
),需要进行设置,否则会出现无法找到对应头文件的问题,常用于framework
的模块化开发,当我们自己负责的模块需要引用公有模块时,可如此进行paths
的设置
使用方法
1. 添加framework search路径
在
settings
中添加framework Search Paths
参数$(PROJECT_DIR)/$(PROJECT_NAME)
参数名 | 说明 |
---|---|
$(PROJECT_DIR) | 项目文件夹的相对路径 |
$(PROJECT_NAME) | 项目名 |
注:$(PROJECT_DIR)/$(PROJECT_NAME)
的路径设置生效前提是我们将多个framework
引入项目。这样我们设置了路径的framework
就能够访问项目路径下的其他framework
。
2. 使用__has_include进行动态判断
由于不确定要引用的
framework
是否存在,使用__has_include进行动态判断避免编译失败
#if __has_include("FrameworkOne/FrameworkOne.h")
#import "FrameworkOne/FrameworkOne.h"
#else
#endif
注:相关的方法调用也应进行__has_include
判断