Необъявленный идентификатор __bridge на xcode - PullRequest
10 голосов
/ 15 августа 2011

Я пытаюсь преобразовать CFUUIDRef в NSString *.

Раньше я использовал следующий код и работал нормально.

CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef
return (__bridge NSString *) str;

Однако после недавнего обновления Xcode(или другое, что я не заметил?), приведенный выше код выдает мне ошибку:

Использование необъявленного идентификатора '__bridge'

Так я и сделалчто-то не так?Как я могу решить эту проблему?

=== ОБНОВЛЕНО ===

Полный код:

+ (NSString *)uuidToString:(CFUUIDRef)_uuid {
  CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef
  return (__bridge NSString *) str;
}

UUID генерируется:

uuid = CFUUIDCreate(NULL);

1 Ответ

20 голосов
/ 01 сентября 2011

__bridge определяется только с включенным ARC (Автоматический подсчет ссылок).Он используется для «передачи объектов в ARC-контроль и из него».( Источник )

Чтобы включить ARC, перейдите в настройки сборки и установите Objective-C Automatic Reference Counting на Yes.

Или, если вы не хотите использоватьARC, просто удалите __bridge и все должно работать нормально.

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