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