为什么#import <HIToolbox / Events.h>失败?

时间:2019-07-07 20:25:26

标签: xcode macos-carbon

我需要function play(filename, startingTime) { // startingTime in milliseconds 中的kVK_Space

enter image description here

HIToolbox/Events.h

有效,并且该文件包含:

#import <Carbon/Carbon.h>

但是如果我直接尝试第二个#include <HIToolbox/HIToolbox.h> ,它将失败。

enter image description here

谁能解释为什么?

1 个答案:

答案 0 :(得分:1)

碳是"umbrella framework"。它封装了其他框架,例如HIToolbox。通过设计,要隐藏实现细节,您不能直接包含子框架作品的标题。

从上面的链接:

  

[T] wo因素将伞形框架与其他框架区分开。第一种是它们包含头文件的方式。

     

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

从最后一个链接开始:

  

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