无法使用__bridge将CFStringRef转换为NSString

时间:2012-08-28 08:44:58

标签: iphone objective-c ios ios5

如果这是一个非常基本的问题,请承担责任。我尝试使用__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.

请咨询,如何解决此问题。

1 个答案:

答案 0 :(得分:7)

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

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

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

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

我得到同样的错误:

  

使用_bridge强制类型将'CFStringRef'(又名'const struct __CFString **')转换为'NSString'。