加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:19:56 所属栏目:百科 来源:网络整理
导读:只有iOS 4.0及以上版本支持ARC的技术原因是什么? 我的理解是,它是一个编译器功能,它只是自动插入内存管理相关代码,而不是要求开发人员这样做.从我所看到的电话本身保持不变 – 至少这就是苹果Transitioning to ARC Guide所暗示的. 因此,它不应该涉及以前版
只有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作为目标,缺乏对弱引用的支持,因此在这里发挥明显的技术问题.这不仅仅是推动开发人员进入新版本的营销策略,而是被其他人所断言.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读