Необъявленный идентификатор __bridge на xcode
Я пытаюсь преобразовать 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
__bridge
определяется только с включенным ARC (автоматическим подсчетом ссылок). Он используется для "переноса объектов в и из управления ARC". (Источник)
Чтобы включить ARC, перейдите к настройкам сборки и установите Objective-C Automatic Reference Counting
в Yes
.
Или, если вы не хотите использовать ARC, просто удалите __bridge
, и он должен работать нормально.