Я пытаюсь интегрировать стороннюю библиотеку C в свой проект, я никогда не делал этого раньше, и у меня возникла проблема с чем-то, что должно быть настолько простым, передачей строкового значения в функцию C.
Ниже мой код, и строка, которая терпит неудачу, генерирует следующую ошибку:
«Неявное преобразование указателя Objective C в const char * запрещено с помощью ARC»
Мой код:
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
Спасибо за вашу помощь.
Здесь вы проходите 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);
mc2coord
функция не берет NSString
объект, а скорее строка C, или const char *
, Выше, не сохраняйте myMapCode
как NSString
а вернее C-строка и у вас все будет хорошо.