iOS 5最佳实践(发布/保留?)
作为一个开始的iPhone程序员,编写iOS 5或更早版本的应用程序的最佳做法是什么? 具体来说,我应该继续使用数据的发布/保留,还是应该忽略这些? 有关系吗?
随你便。 您可以使用ARC(自动引用计数)编写应用程序,Xcode将编写“粘合代码”以允许启用ARC的应用程序在iOS 4上运行,无需进行任何修改。 然而,某些事情不会奏效,最明显很多你可能希望使用的库会(有时)会抛出无数的错误,直到开发者发布一个与ARC兼容的更新,你将无法使用它们。
编辑 :我最近发现,你可以在每个文件的基础上closuresARC。 请参阅pixelfreak的答案 。 所以,我的build议仍然存在,但是现在第三方库不需要更新以便与ARC一起工作。
以下是苹果公司关于为特定文件selectARC的原因:
当您迁移项目以使用ARC时,-fobjc-arc编译器标志被设置为所有Objective-C源文件的默认值。 您可以使用该类的-fno-objc-arc编译器标志禁用特定类的ARC。 在Xcode中,在“目标构build阶段”选项卡中,打开“编译源”组以显示源文件列表。 双击要为其设置标志的文件,在popup面板中input-fno-objc-arc,然后单击完成。
请参阅完整的转换指南。
对于任何人仍然好奇如何closures单个文件的弧,这是我做的:
- 转到您的项目设置,在“
Build Phases > Compile Sources
- select要禁用ARC的文件并添加-fno-objc-arc编译器标志。 通过select文件,然后按“Enter”键,您可以一次设置多个文件的标志。
我不知道这是否是推荐的方式,但它适用于我。
PS:我收集了来自clang.llvm.org的信息,这些信息可以公开访问,因此不属于NDA。
iOS 5仍然处于NDA之下,并且可能会在发布公共版本之前。 如果您有开发者帐户,请前往Apple开发人员论坛并在此处询问。
对于以前的版本,您必须对引用进行计数并相应地保留和释放。 检查内存pipe理指南 。
编辑:这是自动引用计数的公共规范和公共iOS 5页面的引用:
Objective-C的自动引用计数(ARC)使内存pipe理成为编译器的工作。 通过在新的Apple LLVM编译器中启用ARC,您将永远不需要键入retain或release,从而大大简化了开发过程,同时减less了崩溃和内存泄漏。 编译器对你的对象有一个完整的理解,并在每一个对象被释放后立即释放,所以应用运行速度和以前一样快,具有可预测,平滑的性能。
目前NDA的细节很less,但是苹果已经在iOS 5中实现了自动引用计数(ARC),详细内容请看http://developer.apple.com/technologies/ios5/
如果您使用iOS 5 SDK在Xcode 4中开发新应用程序,则可以安全地忽略保留/释放计数。
sudo rm -rf说得很好; 第三方库可能会受到重大影响
没有人提到SystemConfiguration.framework ? 请不要忘记把它放到框架中 。 我悲惨地花了几个小时才意识到这一点。
这当然是开发者或团队的select。 ARC (自动参考计数器)通过为您自动pipe理内存使事情变得简单一些。 它将在适当的时候释放,保留和释放。 我相信,如果您还没有,最好在testing应用程序中,您应该获得自己pipe理内存的经验。 另一件要考虑的事情是,你的应用程序是否依赖于第三方库,如果没有转换成ARC,将会阻止你的应用程序编译。 这个select显然取决于当前的情况。
在项目设置>构build阶段>编译源中将标志设置为-fno-objc-arc