我只是想将NSString *转换为CTStringRef *
NSString *foobar = @"foobar";
CFStringRef *tmp = (__bridge_retained CFStringRef*)foobar;
有人可以帮助解决此错误吗? “不兼容的类型使用__bridge_retained强制转换”将'NSString *'转换为'CTStringRef *'(又名const struct __CFString **)“
我尝试过简单的__bridge,它也不起作用。从文档中,我认为_retained是我需要的正确类型。 感谢。
答案 0 :(得分:4)
如果仔细查看错误消息,您将看到问题所在。提示在这部分 -
__ CFString **
注意两个* - 这意味着您正在尝试强制转换为指向指针,或者换句话说是对引用的引用。 CTStringRef
已经成为参考,正如“参考”所暗示的那样。部分名称,因此您不需要(__bridge_retained CFStringRef*)
您的代码应该是
NSString *foobar = @"foobar";
CFStringRef tmp = (__bridge_retained CFStringRef)foobar;