как преобразовать строку в символ в цели C - PullRequest
2 голосов
/ 21 ноября 2011

как преобразовать строку в символ в цели C. Ниже приведен код, который я использую,

NSString *param = [paramsToPass objectAtIndex:0]
[class gseInit:&getData];
[class gseCom:param];
NSLog(@"%@", param);

в строке № 3, я получаю следующее предупреждение,

Несовместимые типы указателей, отправляющие 'NSString *' параметру типа 'char *'.

, так как преодолеть указанное выше предупреждение. Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 21 ноября 2011

Возможно, вы захотите получить в UTF-8 представление NSString:

NSString *param = [paramsToPass objectAtIndex:0]
[class gseInit:&getData];
[class gseCom:[param UTF8String]];
NSLog(@"%@", param);

Однако это будет работать, только если gseCom: равно , а не , обновляющему строку (т.е.параметр const char *).Единственный способ узнать это - прочитать документацию по классу (вы не упоминаете, что это за класс, поэтому я не могу помочь в этом).

Если он не обновляет параметр, и gseCom ошибочно определен как принимающий char *, а не const char *, тогда вы можете просто привести его к правильному типу:

[class gseCom:(char *)[param UTF8String]];

Однако, если он обновляет param, тогда вы будетенужно дать ему буфер для работы:

[class gseInit:&getData];

NSString *param = [paramsToPass objectAtIndex:0]

// Create a buffer containing the c-string (in UTF-8)
#define BUFSIZ 256    // This size depends on what the string could hold
char cparam[BUFSIZ];
[param getCString:cparam maxLength:BUFSIZ encoding:NSUTF8Encoding];

// Let the method update the string
NSLog(@"before %s", cparam);
[class gseCom:cparam];
NSLog(@"after %s", cparam);
2 голосов
/ 21 ноября 2011
NSString *str = @"Hello";
char h = [str characterAtIndex:0];
NSLog(@"%c", h);
2 голосов
/ 21 ноября 2011
NSString *param = [paramsToPass objectAtIndex:0]
[class gseInit:&getData];
[class gseCom:[param cStringUsingEncoding:NSUTF8Encoding]];
NSLog(@"%@", param);

документация по методике

1 голос
/ 21 ноября 2011

Вас может заинтересовать Создание и преобразование строковых объектов с сайта разработчиков Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...