1

我正在尝试将第 3 方 C 库集成到我的项目中,我以前从未这样做过,并且遇到了应该如此简单的问题,将字符串值传递给 C 函数。

下面是我的代码,失败的行会生成以下错误:

'ARC 不允许将 Objective-C 指针隐式转换为'const char *'

我的代码:

NSString *myMapCode = @"GBR H4J.XLL";
double lat = 0.0;
double lng = 0.0;

returnValue = mc2coord(&lat, &lng, "GBR H4J.XLL", 0);  // This works perfectly
returnValue = mc2coord(&lat, &lng, myMapCode, 0);      // This is my Problem code

谢谢你的帮助。

4

2 回答 2

3

在这里你传递一个NSString,而不是一个 C 字符串:

returnValue = mc2coord(&lat, &lng, myMapCode, 0);

如果该函数需要一个 C 字符串,您可以更改

NSString *myMapCode = @"GBR H4J.XLL";

const char *myMapCode = "GBR H4J.XLL";

或将其转换NSString为 C 字符串:

NSString *myMapCode = @"GBR H4J.XLL";
returnValue = mc2coord(&lat, &lng, [myMapCode UTF8String], 0);
于 2013-09-06T18:07:20.147 回答
0

mc2coord函数不接受NSString对象,而是接受 C 字符串或const char *. 在上面,不要保存myMapCodeNSStringC 字符串,而是保存为 C 字符串,你会没事的。

于 2013-09-06T18:07:35.317 回答