xcode上未声明的标识符__bridge

时间:2011-08-15 09:53:20

标签: objective-c xcode4

我正在尝试将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 个答案:

答案 0 :(得分:20)

__bridge仅在启用ARC(自动引用计数)时定义。它用于“将对象传入和传出ARC控件”。 (Source

要启用ARC,请转到构建设置并将Objective-C Automatic Reference Counting设置为Yes

或者,如果您不想使用ARC,只需删除__bridge,它就可以正常工作。