2012-07-19 34 views
3

我使用xcode 4.3.1将非ARC项目转换为弧。我想知道什么Apple LLVM编译器3.1 - 警告Objective-C++自动引用计数

构建设置目的C++自动引用在

Apple LLVM compiler 3.1 - Warnings

部分意味着计数

。可以推测它会打开或关闭ARC的某种警告,但我不完全确定它的含义。

+0

你确定它说Objective - ** C++ **? – trojanfoe 2012-07-19 12:38:46

+0

好点,我甚至没有注意到!但我确定它说Objective-C++。 – Darren 2012-07-19 12:44:33

+0

最好不要将nonARC项目转换为ARC,而应在构建阶段为非ARC的文件添加“-fno-objc-arc”。 – Ranjit 2012-07-19 12:44:39

回答

3

如果选择了警告,在Xcode 4打开最右边的选项卡,然后在顶部选择第二个图标(波浪线),你会看到Apple帮助该项目,它说:

目的-C++自动引用计数ABI不兼容性

CLANG_WARN_OBJCPP_ARC_ABI

在编译使用自动引用计数,报告的代码与传统的手工引用计数代码链接ARC代码时,可能会导致ABI问题目标-C++代码。

此外,我不相信使用“fno-objc-arc”标志来避免不必处理ARC。这样做的人认为他们有完美的无泄露代码,坚持ARC命名启发式的各个方面。我希望我可以对自己的保留/释放/自动释放代码有信心!而且,ARC代码通常更小更快。

+0

谢谢,这节省了我一些时间。 – GoldenJoe 2013-09-04 16:21:29