2015-08-27 7 views
-1

Вот мой код:инвалидных операндов бинарных * (у 'символ *' и 'символ *')

следующая ошибка
NSString *string = @"Ciyt"; 
const char *City = [CityString UTF8String]; 
CFStringRef value = CFSTR(&City); 

шоу в третьем ряду в Xocde:

инвалидных операнды двоичное выражение ('char *' и 'char *');

Есть идеи, чтобы решить эту проблему?

+0

Неверный язык. Является ли эта цель-C? – juanchopanza

ответ

0

Я не 100% уверен, что вы пытаетесь достичь здесь, но если вы хотите, чтобы преобразовать NSString в CFString вы можете сделать это прямо не выходя через C струнные благодаря toll-free bridging:

NSString *string = @"Ciyt"; 
CFStringRef value = CFBridgingRetain(string); 

// use value... 

CFBridgingRelease(value); 

Вот скриншот из переменного вида, показывающий результат:

enter image description here

+0

спасибо, Стив Уилфорд. Я просто пытаюсь использовать CFSTR и строку C вместо CFSTR и текст, заключенный в двойные кавычки, чтобы создать CFString, но он не работает. – Stoull

+0

Почему вы даже пытаетесь использовать «CFSTR»? Если вы хотите, чтобы 'CFString' использовал метод, который я описал. –

1

РСНПА макрос, который работает только с строковыми литералами, как РСНП («а»).

+0

ДА, я нашел описание CFSTR в документе apple: Создает неизменяемую строку из постоянной строки времени компиляции. CFStringRef CFSTR (const char * cStr); cStr Постоянная строка C (то есть текст, заключенный в двойные кавычки), из которого должна быть создана строка. – Stoull