从C++文件调用Objective-C的方法

从C++文件调用Objective-C的方法

问题描述:

我从UnityBridge.mm文件调用BLEObject.m中的方法。从C++文件调用Objective-C的方法

BLEObject.m具有

- (void) SendSetting:(NSData*)data forSelected:(NSString*)type with:(NSData*)clublength and:(NSData*)clubloft{ 
} 

UnityBridge.mm具有

void bleplugin_sendSetting(unsigned char data, char* type, float clublength, float clubloft) 
{ 
    BLEObject *bleobj = [[BLEObject alloc] init]; 
    //NSString* objcstring = @(type); 
    NSString* string = [NSString stringWithUTF8String:type]; 
    NSData *data_ = [NSData dataWithBytes: &data length: sizeof(data)]; 
    NSData *clublength_ = [NSData dataWithBytes: &clublength length: sizeof(clublength)]; 
    NSData *clubloft_ = [NSData dataWithBytes: &clubloft length: sizeof(clubloft)]; 
    [bleobj SendSetting:data_ forSelected:string with:clublength_ and:clubloft_]; 
    return; 
} 

我有一个错误;

[bleobj SendSetting:data_ forSelected:string with:clublength_ and:clubloft_];用如下面的图像中示出的期望的表达:

Enter image description here

+1

请添加头文件。 –

+0

并且不被接受。我改为and_together_with。 - (void)SendSetting:(NSData *)数据forSelected:(NSString *)类型与:(NSData *)clublength and_together_with:(NSData *)clubloft; – batuman

+1

问题是什么? –

and在C关键字++;它在语法上与您写下&&相同。 (类似地,对于or||not!not_eq!=bitand&bitor|xor^compl~and_eq&=or_eq|=为,并xor_eq^=)。

因此,当您使用C++时,您应该避免使用这些名称的任何标识符。