关于自动引用计数,我需要了解什么?

fbr*_*eto 2 xcode memory-management objective-c clang automatic-ref-counting

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

这些错误让我打电话给例如,autorelease并调整我编写的处理内存管理的其他代码.

锵文件上写着:

[ARC]不提供循环收集器; 用户必须明确管理生命周期.

......这让我很紧张 过去,我一直被Objective-C内存管理问题所困扰retain,release并且autorelease在我的代码中依赖于验证每一个.

现在,ARC正在呼唤我改变我的内存管理语义.为了建立对ARC内存管理的信心,我需要知道什么?

jus*_*tin 7

命名约定.修复每个静态分析器问题并确保您的命名清晰并符合约定 - 这现在用作与编译器的通信.现在,这确实没有必要,但最好删除所有编译器和检查器警告,测试,确保您对命名感到满意,然后转换.这也意味着提高警告级别并解决问题.

避免使用属性详细信息:字典的深层副本在Xcode 4.2中给出了分析错误

"避免属性"中的示例演示了类型安全,描述性方法名称的重要性,并确保包含您在翻译中使用的内容并使用严格的选择器匹配.选择:-Wstrict-selector-match.类型安全也将拿出当您执行不安全的转换-有机会,你需要通过特种铸造在你的程序的某些部分来介绍类型安全.

悬挂引用非托管类型.在此处看到:将现有CGColor分配给CGColor属性适用于iOS模拟器,而不是iOS设备.为什么?

[ARC]不提供循环收集器; 用户必须明确管理生命周期.

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

完成转换后,请准备好测试多个OS版本.

祝好运!


附加功能:

使用ARC的优点和缺点是什么?


归档时间:

查看次数:

162 次

最近记录:

14 年,3 月 前