`失败?,xcode,macos-carbon"/>

首页 > 解决方案 > 为什么`#import`失败?

问题描述

我需要kVK_SpaceHIToolbox/Events.h

在此处输入图像描述

#import <Carbon/Carbon.h>

工作,这个文件包含:

#include <HIToolbox/HIToolbox.h>

但是,如果我直接尝试这一秒#include,它会失败。

在此处输入图像描述

谁能解释为什么?

标签: xcodemacos-carbon

解决方案


碳是一个“伞形框架”。它封装了其他框架,例如 HIToolbox。按照设计,要隐藏实现细节,您不能直接包含子框架的标头。

从上面的链接:

[T] 两个因素将伞形框架与其他框架区分开来。首先是它们包含头文件的方式。

与标准框架不同,Headers伞形框架的目录包含一组更有限的头文件。它不包含其子框架中的标头集合。相反,它只包含框架的主头文件。在源文件中引用伞式框架时,应仅包含主头文件。有关更多信息,请参阅包括框架

从最后一个链接:

[I]如果你包含一个伞式框架,你必须包含主头文件。Umbrella 框架不允许您直接包含其组成子框架的标题。


推荐阅读