为什么不鼓励在框架标头中使用“@import”?

问题描述 投票:0回答:1

我有一个框架目标,其中包含 Objective-C 和 Swift 源文件的混合体。

我刚刚将项目的构建设置升级为 Xcode 14.3.1 推荐的设置。

Xcode 所做的更改之一是为我的框架目标打开

ENABLE_MODULE_VERIFIER
构建设置。

在此更改之后,我在框架的所有公共头文件中收到以下构建错误,其中包含语义导入(即表单

@import MODULE_NAME;
的导入):

不鼓励在框架标头中使用“@import”,包括此标头需要 -fmodules

我在 Xcode > 构建系统 > 识别和解决框架模块问题 文章中也看到了这个建议:

避免在公共和私有标头中使用语义导入语法。

Xcode 构建错误和文章都没有解释为什么我们应该避免在框架的公共和私有头文件中进行语义导入。

为什么我们应该避免在框架的公共和私有头文件中进行语义导入?

xcode frameworks ios-frameworks xcode14 xcode-build-settings
1个回答
0
投票

Apple 在 XCode 11.4 的发行说明中声明的原因是“不鼓励在框架标头中使用 @import,因为这样做需要所有导入程序都使用模块。

换句话说,使用它会强制建立依赖关系,而不是普通的

import
语句,其中预处理器仅包含另一个文件的必要方面。

© www.soinside.com 2019 - 2024. All rights reserved.