在Objective C中通过引用传递原始数据类型

时间:2010-12-16 01:42:33

标签: iphone objective-c xcode pass-by-reference

我有一个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);

谁能告诉我出了什么问题?

2 个答案:

答案 0 :(得分:0)

将文件更改为test_viewcontroller.mm。

你告诉它编译为Objective-C文件,它不理解引用。 '.mm'表示Objective-C ++,它可以像你想要的那样将Obj-C和C ++混合在一起。

答案 1 :(得分:0)

你根本不能在普通的Objective-C中做到这一点 - 因为C中不存在引用。它们是C ++特性。因此,您必须使用Objective-C ++,这基本上意味着将Objective-C文件的扩展名更改为“.mm”。