Cocos2dx导入QuartzCore框架给出(引用Point,Rect,Size是不明确的)错误

时间:2015-12-23 06:49:26

标签: c++ cocos2d-x quartz-core ambiguous

我正在使用c ++开发cocos2dx游戏。什么时候我将quartzcore框架导入到我的头文件中,在构建它之后给了我20多个错误,说Point不明确。只有在我通过编写“#import”导入石英文件时才会出现错误。 我已经在“链接二进制”链接框架,所以不应该有链接问题。 任何帮助表示赞赏。 感谢。

1 个答案:

答案 0 :(得分:0)

如果您正在使用cocos进行c ++游戏,则需要小心将Objective-C代码与C ++代码进行分区。

最简单的方法是在.mm文件中使用#import(可以包含C ++和Objective-C代码),以确保您无法在普通的c ++方面获得Objective-C指令

即便如此,如果您正确使用c ++代码中的命名空间,也不会发生此错误:虽然Quartz框架 - 在Objective-C中定义了全局命名空间中的“Point”等,但Cocos2d-x将其定义为cocos2d名称空间。

因此,如果将所有应用程序代码放在命名空间中,并将cocos命名空间导入到该命名空间中,则可以避免遇到全局命名空间冲突。

例如,在我的应用程序中,我在所有c ++代码中使用了一个命名空间,如下所示:

namespace myapp {
  using cocos2d;

  class MyClass {
  public:
    Point cocosPoint;
    ::Point quartzPoint;
  };
}