iOS开发framework时,多个framework之间的访问

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) 项目名
image.png

注:$(PROJECT_DIR)/$(PROJECT_NAME)的路径设置生效前提是我们将多个framework引入项目。这样我们设置了路径的framework就能够访问项目路径下的其他framework

image.png

2. 使用__has_include进行动态判断

由于不确定要引用的framework是否存在,使用__has_include进行动态判断避免编译失败

#if __has_include("FrameworkOne/FrameworkOne.h")
    #import "FrameworkOne/FrameworkOne.h"
#else
#endif

注:相关的方法调用也应进行__has_include判断

你可能感兴趣的:(iOS开发framework时,多个framework之间的访问)