Objective c 关于自动引用计数,我需要知道什么?

Objective c 关于自动引用计数,我需要知道什么?,objective-c,xcode,memory-management,automatic-ref-counting,clang,Objective C,Xcode,Memory Management,Automatic Ref Counting,Clang,我有一个应用程序,我正在更新到最新版本的Xcode,并且遇到了与自动引用计数(ARC)相关的多个错误 这些错误要求我调用,例如,autorelease,并调整我编写的其他处理内存管理的代码 草案内容如下: [ARC]不提供循环收集器;用户必须显式地管理生存期 。。。这让我很紧张。在过去,我一直被Objective-C内存管理问题所困扰,并且为我的代码中的每一个保留、释放和自动释放辩解 现在ARC号召我在改变内存管理语义方面迈出一大步。要建立对ARC内存管理的信心,我需要知道什么?命名约定。修复每

我有一个应用程序,我正在更新到最新版本的Xcode,并且遇到了与自动引用计数(ARC)相关的多个错误

这些错误要求我调用,例如,
autorelease
,并调整我编写的其他处理内存管理的代码

草案内容如下:

[ARC]不提供循环收集器;用户必须显式地管理生存期

。。。这让我很紧张。在过去,我一直被Objective-C内存管理问题所困扰,并且为我的代码中的每一个
保留
释放
自动释放
辩解


现在ARC号召我在改变内存管理语义方面迈出一大步。要建立对ARC内存管理的信心,我需要知道什么?

命名约定。修复每个静态分析器问题,并确保您的命名清晰且符合约定-这现在充当与编译器的通信。现在,这确实不是必需的,但是最好删除所有编译器和检查器警告,测试,确保您对命名满意,然后转换。这也意味着增加警告级别并解决问题

避免属性此处的详细信息:

“避免属性”中的示例演示了类型安全、描述性方法名称以及确保在翻译中包含所用内容并使用严格的选择器匹配的重要性。选项:
-Wstrict选择器匹配
。当您执行不安全的转换时,类型安全性也会出现——很可能,您需要在程序的某些部分通过特殊转换引入类型安全性

悬挂对非托管类型的引用。如图所示:

[ARC]不提供循环收集器;用户必须显式地管理生存期

这是指强循环引用(例如,相互依赖对象)。这些将存在于您的旧程序中。仪器可以帮助你检测它们

完成转换后,准备测试几个操作系统版本

祝你好运


额外费用: