iPhone 4 iOS5 Core Plot和ARC错误:“当前部署目标不支持弱引用”

15

我已将我的项目转换为iOS 5并启用了ARC。现在我需要将Core Plot集成到项目中。当我尝试实例化Core Plot附带的样例控制器时,我收到大约20个以下错误:

当前的部署目标不支持自动__weak引用

我在构建设置中明确指定了控制器名称旁边的fno-objc-arc

除此之外,我还需要什么才能在启用ARC的情况下运行Core Plot?

谢谢!

3个回答

42

__weak引用仅适用于iOS 5及以上版本。 如果您的部署目标设置为任何早期版本,则会出现错误。 基本上,如果您想要部署到早期设备,就不能使用自动化的__weak引用。替代方法是__unsafe_unretained


我需要将部署目标保持在4.2,有没有什么办法可以绕过它? - Pavan
2
使用__unsafe_unretained代替__weak。请注意,在这种情况下,您会失去一些ARC功能。 - FeifanZ

6
尽管Inspire48的答案广泛涵盖了在iOS 5.0之前的版本中不支持__weak引用的事实,但这个特定问题是由于Core Plot的头文件没有完全与ARC兼容造成的。这个问题在几个月前的Mercurial存储库中得到了解决,因此如果你想在启用ARC的项目中使用Core Plot,你需要从存储库获取最新的代码。0.9快照由于它的头文件中存在类似这样的项而无法很好地与ARC交互。存储库中的Core Plot框架代码还支持将应用程序针对iOS 4.0和Snow Leopard进行目标设置,并启用ARC(我相信对于没有ARC的Leopard和3.0也是如此),因此你不需要将目标设置为5.0才能使用Core Plot中的ARC。

0

更改开发目标为6.0。

选择您的项目 > 目标 > 开发目标 > 更改为6.0


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接