我正在尝试将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);

最佳答案

__bridge仅在启用ARC(自动引用计数)的情况下定义。它用于“将对象移入和移出ARC控制”。 (Source)

要打开ARC,请转到您的build设置,然后将Objective-C Automatic Reference Counting设置为Yes

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

关于objective-c - Xcode上未声明的标识符__bridge,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7063644/

10-10 20:43