前沿数码资讯:Objective-C引入了零运行时成本直接法
科技、数码、互联网新闻如今都成为了大众所关注的热点了,因为在我们的生活当中如今已经是处处与这些相关了,不论是手机也好,电脑也好,又或者是智能手表也好,与之都相关,那么今天小编也是为大家来推荐一篇关于互联网科技数码方向的文章,希望大家会喜欢哦。
Objective-C引入了零运行时成本直接法
自S wift于2014年推出以来,Objective-C只知道一些小的变化,主要是为了验证其与Swift的互操作性。然而,Objective-C并不是一种边缘语言,它最近增加了对“直接”方法的支持,这些方法看起来像普通的类方法,但表现得更像C函数。
虽然Swift作为构建iOS应用程序的首选语言吸引了最大的兴趣,但Objective-C仍然在开发人员中很受欢迎。事实上,如果真的是斯威夫特在2016年首次超过TIOBE指数中的Objective-C,那么截至2019年11月,Objective-C在TIOBE指数中已经攀升至第12位,斯威夫特排名第10位。有趣的是,这两种语言已经多次交换了他们的TIOBE排名。同样,Stack Overflow语言排名根据流行的问答论坛上提出的问题数量来衡量语言的采用程度,这突出了人们对Objective-C的兴趣下降。Stack Overflow数字可以通过Swift收集进入iOS开发领域的大多数新开发人员,以及过去几年对Objective-C的修改次数减少来具体解释。
尽管如此,Objective-C的新功能还是让很多人感到有些意外。简而言之,一个直接方法允许定义一些特殊类型的属性,这些属性不附带Objective-C元数据,其getter和setter方法几乎表现为直C函数。这个新特性的语法是Objective-C@property语法的直接扩展:
直接方法的使用通过objc_msgSend消除了与Objective-C运行时方法解析相关的一些开销..这使得使用这个新功能来优化一些关键路径变得有趣,就像PSPD FKit知名度的iOS开发人员彼得·斯坦伯格在Twitter上所说的那样。无论如何,并不是所有的开销都被删除,因为LLVM中的直接方法实现力求使其与标准的Object-C方法兼容。特别是,隐式self和_cmd参数都被保留,并进行了一些检查,以确保两者在调用方法时都是正常的。
开发人员如何使用直接方法有一些限制。首先,直接方法只能在内部、私有API上使用,不能被框架公开。此外,重载的方法不能是直接的,也不能是直接的方法,也不能重载直接的方法;实现不能重新声明它与直接的接口的非直接方法;所需的协议方法不能是直接的;最后,您不能发送不限定的id直接方法。
除了优化关键路径的可能性外,对这一新的客观-C特征的反应并不完全是积极的一面。iOS开发人员TannerB评论说,直接方法损害了许多基本的目标C特性,如KVC、KVO、方法闪烁等。第一天应用程序开发商BJ Homer表示,他担心苹果可能会使用直接方法来使调整更难完成:
objc_direct_member注释似乎有效地实现了Objc的真正私有方法。静态发送,不可覆盖。我可以看到苹果在内部大量使用这种方法来避免人们调用私有方法。
这一担忧在某种程度上被著名的iOS开发者和图书作者尼克·洛克伍德所忽视,因为直接方法只能是私人的:
这应该有助于减轻人们的担忧,即它将从根本上改变Objective-C的性质,方法是阻止像KVO这样的滑动和破坏功能。
苹果高级软件工程师皮埃尔·哈布齐特也证实了这一点。
最后,虽然直接方法已经合并为LLVM,但不太可能在明年WWDC之前在X code中提供这些方法。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
昌河北斗星X5试驾,简单几步,开启完美试驾之旅。首先,预约试驾,通过官网或4S店轻松完成;其次,到店后由专...浏览全文>>
-
北汽制造勇士试驾预约,是体验这款硬派越野车型的重要环节。4S店提供便捷的线上预约服务,用户可通过官网或电...浏览全文>>
-
极狐阿尔法T6试驾,开启完美驾驭之旅。外观设计动感时尚,线条流畅,充满未来感。内饰豪华舒适,科技感十足,...浏览全文>>
-
长安欧尚520试驾操作指南:1 启动车辆:插入智能钥匙,踩下刹车,按下启动按钮。2 选择驾驶模式:通过中...浏览全文>>
-
试驾五菱凯捷可通过以下几种途径:1 4S店试驾:前往当地五菱汽车授权经销商,直接预约试驾服务,专业销售顾...浏览全文>>
-
MINI试驾线上+线下操作指南线上预约:访问MINI官网或官方APP,选择“试驾预约”,填写个人信息、车型偏好及时...浏览全文>>
-
力帆预约试驾,一键搞定,开启豪华驾驶之旅。只需简单几步,即可在线预约心仪车型的试驾体验,省时又便捷。无...浏览全文>>
-
SONGSAN MOTORS试驾预约,开启非凡驾驶之旅!我们为您精心准备了多款高性能车型,无论您是追求速度的激情玩家...浏览全文>>
-
欧拉试驾预约,轻松几步,畅享豪华驾乘。只需三步,即可开启您的专属体验:第一步,访问欧拉官网或官方APP,点...浏览全文>>
-
MINI试驾,线上+线下操作指南线上预约:访问MINI官网或官方APP,选择“试驾预约”,填写个人信息、车型偏好及...浏览全文>>
- 北汽制造勇士试驾预约,4S店的贴心服务与流程
- MINI试驾,线上+线下操作指南
- 零跑汽车试驾,如何在4S店快速预约?
- 试驾MG4 EV全攻略
- 长安欧尚520试驾操作指南
- IPHONE 17 系列或将提供高达 35W 的有线充电
- OPPO FIND N5 推出迄今为止最薄的可折叠智能手机
- IPHONE 上的 CHROME 和 GOOGLE APPS 正在使用 CIRCLE 进行搜索
- OPPO 推出 WATCH X2
- NOTHING PHONE在 3 月 4 日发布前的完整详细信息
- Nintendo Switch 2 渲染图显示其支架经过重新设计,拥有新按钮,但缺少一个插槽Nintendo Switch 2 渲染图显示其支架经过重新设计 拥有新按钮
- 据传卡西欧 CRW-001 新款金色戒指手表即将上市
- FPGA 游戏机的灵感来自 PS One 起价 149 美元
- 伊利诺伊州住房市场在利率上升的情况下保持稳定
- Realme 14x 5G 搭载联发科 Dimensity 6300 SoC
- 三星 Galaxy S25 Ultra 渲染图泄露 显示圆角设计
- 预计三星 Galaxy S25 Ultra 的边框将比其前代产品更薄
- 三星 Galaxy Unpacked 2025 或将于 1 月 22 日举行
- Rivian 通过假日更新推出 Google Cast 支持
- 圣诞老人的房子在房地产网站上挂牌出售 估价 120 万美元