我有一个C ++函数,我从Objective CI调用需要通过引用C ++函数来传递变量。但我在xcode中得到以下错误 - “预期';',','或')'''和'amp' ;” foo.h中的标记“
“foo.h”中的函数声明
#ifdef __cplusplus
extern "C"
{
#endif
NSString * LLtoUTM(double Lat,double Long,double &UTMNorthing, double &UTMEasting);
#ifdef __cplusplus
}
#endif
test_viewcontroller.m中的函数调用
double UTM_x;
double UTM_y;
UTMzone = [[NSString alloc] init];
UTMzone = (NSString *) LLtoUTM(latitude,longitude,UTM_y,UTM_x);
谁能告诉我出了什么问题?
答案 0 :(得分:0)
将文件更改为test_viewcontroller.mm。
你告诉它编译为Objective-C文件,它不理解引用。 '.mm'表示Objective-C ++,它可以像你想要的那样将Obj-C和C ++混合在一起。
答案 1 :(得分:0)
你根本不能在普通的Objective-C中做到这一点 - 因为C中不存在引用。它们是C ++特性。因此,您必须使用Objective-C ++,这基本上意味着将Objective-C文件的扩展名更改为“.mm”。