8

基本上,我有一个可以正常运行的 IOS 应用程序。

在按照http://docs.urbanairship.com/build/ios.html#ios-push-getting-started上的说明进行操作时,我到达了“注册您的设备”部分,要求我进行编译。

尝试在 xCode 5 中构建代码后,我收到以下错误“@implementation UAPushSettingsAddTagViewController @synthesize of 'weak' property is only allowed in ARC or GC mode”。

注意:ARC 模式未使用。

4

2 回答 2

18

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

编辑:

正如@TaylorHalliday 在下面的评论中指出的那样,我的回答相当不完整。

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

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

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

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

于 2013-09-21T18:45:18.600 回答
1

当我将这两个文件添加到我的项目中时,我遇到了同样的错误。我的项目未启用 ARC。我必须先删除这些文件,然后必须将我的项目转换为 ARC。然后添加这些文件不会导致错误。

于 2015-09-08T15:59:31.147 回答