编译器错误:预期标识符或(

时间:2013-03-08 10:50:45

标签: objective-c

我在C头文件中有以下结构。

typedef struct GSPathInfo {
        unsigned char pathIndex;        // 0x0 = 0x5C
        unsigned char pathIdentity;     // 0x1 = 0x5D
        unsigned char pathProximity;    // 0x2 = 0x5E
        CGFloat pathPressure;               // 0x4 = 0x60
        CGFloat pathMajorRadius;        // 0x8 = 0x64
        CGPoint pathLocation;           // 0xC = 0x68
        GSWindowRef pathWindow;         // 0x14 = 0x70
    } GSPathInfo;   // sizeof = 0x18.

在目标C(.mm)文件中,我正在执行以下操作:

-(void)GettingFingerSizeInfo {
    CGFloat pressure =  GSPathInfo.pathPressure 
}

Xcode抱怨:预期的标识符或(

2 个答案:

答案 0 :(得分:1)

您是否在.mm文件的顶部包含.h文件?

更重要的是,在 pathPressure之后在该函数中添加分号

e.g。

-(void)GettingFingerSizeInfo {
    CGFloat pressure =  GSPathInfo.pathPressure;
}

最后,只是一个建议......目标C中的最佳(或标准)实践是使用小写字母开始方法名称。因此,请将其声明为“GettingFingerSizeInfo”。而不是“gettingFingerSizeInfo”。

答案 1 :(得分:1)

问题是您没有创建任何地方来保存GSPathInfo结构的信息并在其字段中设置值。你需要一个变量来保存结构。

e.g。

GSPathInfo pathinfo = malloc(sizeof(GSPathInfo));
pathinfo.pathPressure = 1.0f;

...

CGFloat pressure =  pathinfo.pathPressure;

另请注意.mm文件适用于Objective C ++,。m适用于Objective C