我目前正在开发iOS项目。为了方便起见,我在早期的几个小程序中分割了这些功能。该项目由Obj-C,Obj-C++和C++程序组成。现在我把所有的东西放到最终产品中,并且在Obj-C和C++之间的(我猜)兼容性方面遇到了一些奇怪的行为。Obj-C错误:“期望类的指针前不合格id”
我想在obj-C++程序中初始化一个对象,该程序来自obj-C类。但是编译OBJ-C类的头文件时,我不断收到错误:
#import <Foundation/Foundation.h>
@class AVAssetExportSession;
@interface LibraryImport : NSObject {
AVAssetExportSession * export; //Error line
NSError* movieFileErr;
}
//class methods
的成绩单是这样的:
LibraryImport.h:24:错误: '出口'
之前预期不合格-IDLibraryImport.h:24:error:instance variable'unnamed'has unknown size
LibraryImport.h:24:error:expected`;' “出口”前
的调用是这样的OBJ-C++文件:(检测到的这里没有错误,只是觉得有什么正相关)
LibraryImport* import = [[LibraryImport alloc] init];
最怪异的部分是,当它最初被称为由一个纯粹的Obj-C程序,它工作得很好。但项目性质需要将调用者更改为obj-C++。另外,当我试图将obj-C文件更改为obj-C++时,我得到的错误比以前更多,包括现有的错误。
这里是让我敲我的头靠在墙上,在过去整整一个星期的问题:
在这种情况下,我怎么能成功初始化此对象吗?
这个问题与obj-C和C++之间的兼容性有关吗?如果是这样,是否有一个通用的解决方案或对兼容性的一些明确的解释?
让我知道是否需要更多信息(这是我第一次遇到这个问题,我甚至不知道从哪里开始......)。任何见解将不胜感激。非常感谢你:-)
干杯,
曼卡
事实上,'export'是一个C++关键字:http://www.parashift.com/c++-faq-lite/templates.html#faq-35.14 – 2011-03-04 10:58:12
并非总是如此。我没有找到它,例如,在Visual Studio 2010 http://msdn.microsoft.com/en-us/library/2e6a4at9%28v=VS.100%29.aspx中,虽然IDE仍将它标记为如果它是一个。我有点困惑。 – CygnusX1 2011-03-04 11:02:57
您是否检查@larsmans的链接?这是一个关键字,但没有得到很好的支持。不确定VS是否真的是最好的地方来清除有关语言标准的混淆...... – walkytalky 2011-03-04 11:16:38