Obj-C错误:“在类指针之前预期的非限定id”

时间:2011-03-04 10:52:04

标签: c++ objective-c ios core-audio objective-c++

我目前正在开发一个iOS开发项目。为方便起见,我在早期阶段将功能分成几个小程序。该项目包括Obj-C,Obj-C ++和C ++程序。现在我将它们放在最终产品中,并且在(我猜)Obj-C和C ++之间的兼容性方面遇到了一些奇怪的行为。

我正在尝试在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:错误:'export'之前的预期unqualified-id

LibraryImport.h:24:错误:实例变量'unnamed'的大小未知

LibraryImport.h:24:错误:预期`;'在'出口'之前

这个调用在obj-C ++文件中是这样的:(这里没有检测到错误,只觉得有些东西可能相关)

LibraryImport* import = [[LibraryImport alloc] init];

最奇怪的是,当它最初由一个纯粹的Obj-C程序调用时,它的工作原理非常好。但项目性质需要将调用者更改为obj-C ++。而且,当我尝试将obj-C文件更改为obj-C ++时,我得到的错误比以前更多,包括现有错误。

过去整整一周,这些问题一直让我头撞墙:

  1. 在这种情况下,我如何成功初始化此对象?

  2. 这个问题是否与obj-C和C ++之间的兼容性有关?如果是这样,是否有关于兼容性的一般解决方案或一些明确的解释?

  3. 如果需要更多信息,请告诉我(这是我第一次遇到这个问题,我甚至不知道从哪里开始......)。任何见解将不胜感激。非常感谢你: - )

    干杯,

    曼卡

1 个答案:

答案 0 :(得分:10)

我不知道Obj-C ++,只是C ++。

有些编译器会将export视为关键字,请尝试以不同方式命名变量。