Использование LLVM GCC 4.2 не позволит мне соединить CFStringRef с NSString - PullRequest
2 голосов
/ 12 января 2012

Мне нужно сделать некоторые графики в моем приложении для iPad, поэтому я следовал этому руководству:

http://recycled -parts.blogspot.com / 2011/07 / setting-up-coreplot-in-xcode-4.html

, в котором мне пришлось изменить мой компилятор C / C ++ / Objective-C на LLVM GCC 4.2.(Первоначально это был Apple LLVM Compiler 3.0).

Теперь я не могу _bridge преобразовать CFStringRef в NSString.Я получаю следующую ошибку:

'_bridge' undeclared (first use in a function)

Может кто-нибудь помочь мне разобраться с этим ??Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 января 2012

Ключевое слово __bridge имеет два ведущих подчеркивания.

Гадание по вашему коду, это, вероятно, похоже на то, что вы хотите:

CFStringRef cf = CFSTR("test");
NSString *ns = (__bridge_transfer NSString *)cf;

(Это простой пример с постоянной строкой)

2 голосов
/ 12 января 2012

КакаоФу заметил одну проблему.

Другая проблема заключается в том, что GCC + LLVM не поддерживает ARC - только версии Clang начиная с лета 2011 года поддерживают ARC. Мостовое литье дополняет ARC.

Если вам нужен GCC, вам нужно будет добавить в программу ручной подсчет ссылок, или вы можете переместить вещи в отдельные файлы для различий ARC / MRC. Или вы можете использовать более ранние выпуски зависимых библиотек, если они требуют ARC. Или ... (еще несколько вариантов)

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