'弱'属性的@synthesize仅允许在ARC或GC模式下首次编译urbanship

时间:2013-09-21 18:40:14

标签: ios xcode urbanairship.com

基本上,我有一个没有问题的IOS应用程序。

按照http://docs.urbanairship.com/build/ios.html#ios-push-getting-started的说明操作,我到达了“Register Your Device”部分,要求我编译。

尝试在xCode 5中构建代码后,我收到以下错误“@implementation UAPushSettingsAddTagViewController @synthesize'weak'属性仅允许在ARC或GC模式下使用。”

注意:ARC模式未使用。

2 个答案:

答案 0 :(得分:17)

在项目代码和您包含的库中搜索“弱”。将其更改为“分配”

编辑:

@TaylorHalliday在下面的评论中指出,我的答案相当不完整。

更改要分配的弱属性将消除编译器错误,但如果您不了解如何使用手动引用计数,则可能会导致内存管理问题。

由于您正在使用手动引用计数,因此您需要查看代码并确保保留需要保留的对象,然后在完成对象后释放对象的所有拥有引用。解释详细信息超出了论坛帖子的范围。我建议您在Xcode帮助系统中搜索“关于内存管理”,并阅读整个“高级内存管理指南”。

您可能还应该在项目上运行Analyze工具以查找可能的内存管理问题。

更好的是,将您的项目转换为使用ARC。使用ARC时,避免内存管理问题要容易得多。

答案 1 :(得分:1)

当我将these two files添加到项目中时,我遇到了同样的错误。我的项目未启用ARC。我必须首先删除这些文件,然后必须将我的项目转换为ARC。然后添加这些文件没有造成任何错误。