使用 LLVM GCC 4.2 不会让我将 CFStringRef _bridge到 NSString 中



我需要在iPad应用程序中绘制一些图形,所以我遵循了本教程:

http://recycled-parts.blogspot.com/2011/07/setting-up-coreplot-in-xcode-4.html

在其中,我不得不将我的C/C++/Objective-C编译器更改为LLVM GCC 4.2。(最初是Apple LLVM编译器3.0)

现在,我无法将CFStringRef强制转换为NSString(_bridge)。我得到以下错误:

'_bridge' undeclared (first use in a function)

有人能帮我解决这个问题吗??谢谢

关键字__bridge有两个前导下划线。

猜测你的代码这可能与你想要的类似:

CFStringRef cf = CFSTR("test");
NSString *ns = (__bridge_transfer NSString *)cf;

(给定常量字符串,这是一个简单的例子)

CocoaFu发现了一个问题。

另一个问题是GCC+LLVM不支持ARC——自2011年夏天以来只有Clang版本支持ARC。桥接铸造补充了ARC。

如果您需要GCC,您将需要在程序中添加手动引用计数,或者您可以将内容移动到单独的文件中,以获得ARC/MRC差异。或者你可以使用依赖库的早期版本,如果它们需要ARC的话。或者。。。(更多选项)

最新更新