微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

objective-c – 为什么ARC只适用于iOS 4.0?

只有iOS 4.0及以上版本支持ARC的技术原因是什么?

我的理解是,它是一个编译器功能,它只是自动插入内存管理相关代码,而不是要求开发人员这样做.从我所看到的电话本身保持不变 – 至少这就是苹果Transitioning to ARC Guide所暗示的.

因此,它不应该涉及以前版本的iOS中没有存在的功能,并且尽管稍后介绍,ARC也可以与iOS 4.0配合使用.

我好奇地问这个问题,实际上并不需要使ARC与iOS 3.x一起使用.

解决方法

同样的原因,自动引用计数仅支持64位SNow Leopard作为最低部署目标:ARC支持需要仅在现代运行时间足够新版本中存在某些功能. iOS 4.0引入了现代运行时,因此较旧的iOS版本缺少运行时,可以处理ARC所需技术上的一些问题.如果它只是键入操作系统版本,也将支持32位SNow Leopard应用程序,但只有64位运行时是现代版本.

如果您从WWDC 2011观看Apple的演讲,特别是“Objective-C Advancements In-Depth”,您将看到,已经做了一些改进,以加快保留/发布过程,以及事情像更快的@autoreleasepool. LLVM ARC specification一个关于运行时支持的整个部分.这些改进不仅仅需要编译器支持.

我们已经不得不使用现代运行时的功能,如自动合成实例变量(如Apple’s documentation所述),所以这不是一个可怕的惊喜.

即使是iOS 4.0作为目标,缺乏对弱引用支持,因此在这里发挥明显的技术问题.这不仅仅是推动开发人员进入新版本的营销策略,而是被其他人所断言.

原文地址:https://www.jb51.cc/c/114988.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐