【问题标题】:Undeclared identifier __bridge on xcodexcode上未声明的标识符__bridge
【发布时间】:2011-08-15 09:53:19
【问题描述】:

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

【问题讨论】:

  • 它抱怨ARC不允许转换...我对xocde很陌生,不知道如何打开它,也不知道如何检查它是否真的打开。
  • 如果您想使用 ARC,请重新打开它,并向我们展示它所抱怨的完整代码。

标签: objective-c xcode4


【解决方案1】:

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

要打开 ARC,请转到您的构建设置并将 Objective-C Automatic Reference Counting 设置为 Yes

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多