Objective c 编译器错误:应为标识符或(

Objective c 编译器错误:应为标识符或(,objective-c,Objective C,我在C头文件中有以下结构 typedef struct GSPathInfo { unsigned char pathIndex; // 0x0 = 0x5C unsigned char pathIdentity; // 0x1 = 0x5D unsigned char pathProximity; // 0x2 = 0x5E CGFloat pathPressure; //

我在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投诉:预期标识符或(

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

更重要的是,在函数中的pathPressure后面加一个分号

e、 g


最后,只是一个建议……在目标C中,最好(或标准)的做法是以小写字母开头方法名称。因此,与其使用“
GettingFingerSizeInfo
”,不如将其声明为“
GettingFingerSizeInfo
”.

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

e、 g


也注意到.mm文件是针对目标C++的,m是针对目标c

的,因为它是一个更好的答案。
-(void)GettingFingerSizeInfo {
    CGFloat pressure =  GSPathInfo.pathPressure;
}
GSPathInfo pathinfo = malloc(sizeof(GSPathInfo));
pathinfo.pathPressure = 1.0f;

...

CGFloat pressure =  pathinfo.pathPressure;