iOS ARC完成了吗?

lil*_*mmd 4 objective-c ios automatic-ref-counting

一位前开发人员为我们的组织构建了一个编写良好的iPhone应用程序 在他退出后,另一位开发人员更新了自动引用计数(ARC)的应用程序.此开发人员已不在此处.我不相信他所做的事,因为他是一个不道德的开发者.我有15年的开发经验,但我是iPhone开发的新手.我需要知道我是否应该完整地保留他的更改.我仔细比较了他所做的改变.他只取出了dealloc函数并删除了'release','retain'和'autorelease'的使用.从我的阅读http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html:

您无法显式调用dealloc,也无法实现或调用retain,release,retainCount或autorelease.

这应该没问题.

但是,这篇文章

http://www.learn-cocos2d.com/2011/11/everything-know-about-arc/

提到

选择LLVM 3.0作为编译器后,可以将Build Setting Objective-C Automatic Reference Counting设置为YES.

此设置仍设为NO.在我看来,代码已更新为使用ARC,但该项目未配置ARC.你能告诉我怎么继续吗?

Ant*_* MG 7

那么,该参数必须设置为YES,可能代码在任何地方泄漏.

您可以使用Analyzer(产品 - >分析)检查项目是否泄漏.

如果禁用ARC并从代码中删除版本,分析器将通知您代码正在泄漏,以及在何处泄漏.

因此,在启用ARC后,分析仪不会给您任何泄漏.

另一种检查ARC是否被禁用或启用的方法是在代码中使用release或autorelease.如果启用了ARC,您应该看到警告或错误.

  • @AntonioMG这只意味着分析仪找不到任何问题.应用程序可能会从保留周期中泄漏大量内存,或者因为行为发生变化而可能会崩溃.应用程序只有在经过适当测试后才能提交到应用程序商店("正确测试"是一个练习,其定义留给读者). (3认同)