【问题标题】:Unable to convert CFStringRef to NSString with __bridge无法使用 __bridge 将 CFStringRef 转换为 NSString
【发布时间】:2012-08-28 08:44:58
【问题描述】:

如果这是一个非常基本的问题,请多多包涵。我尝试使用 __bridge 将 CFStringRef 转换为 NSString,因为我启用了 ARC。

mydevUUIDString = CFUUIDCreateString(NULL, peripheral.UUID);
 NSString *temp = (__bridge NSString *) devUUIDString;

我仍然收到以下错误:

 Incompatible type casting 'CFStringRef' (aka 'const struct __CFString  **) to 'NSString' with _bridge cast.

请指教,如何解决此问题。

【问题讨论】:

  • 请输入实际代码。您上面的代码 sn-p 甚至无法编译(例如,变量在您的 sn-p 中具有不同的名称)。
  • 您在两行中都使用了不同的变量mydevUUIDString / devUUIDString
  • 您的代码示例不完整。 devUUIDString 在哪里定义和分配?

标签: iphone objective-c ios ios5


【解决方案1】:

我认为问题在于,当您创建mydevUUIDString 时,您将其创建为指向 CFStringRef 的指针。例如,当我输入以下代码时,Xcode 没有给我任何错误:

CFStringRef mydevUUIDString = NULL;
NSString *temp = (__bridge NSString *)(mydevUUIDString); 

但是,当我输入此代码时(这很可能是您所做的):

CFStringRef *mydevUUIDString = NULL;
NSString *temp = (__bridge NSString *)(mydevUUIDString);

我得到了和你一样的错误:

使用 _bridge cast 将不兼容的类型转换为 'CFStringRef'(又名 'const struct __CFString **)到 'NSString'。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2015-08-17
    相关资源
    最近更新 更多