iOS开发技术咨询:Objective-C现状及相关技术演进疑问
1. Objective-C(ObjC)目前仍用于iOS开发吗?
当然还在!虽然Swift现在是苹果力推的主力开发语言,但很多深耕iOS多年的大型项目、老牌第三方框架,至今还在大量使用Objective-C。苹果也从来没放弃过对它的支持——最新的iOS SDK依然完美兼容ObjC,甚至还在优化它和Swift的互操作性。不少团队都会采用混编模式:用Swift开发新功能,同时保留久经考验的旧ObjC代码,毕竟重写整个成熟项目的成本实在太高了。
2. 2014年WWDC上苹果宣布将从Objective-C转向Swift开发原生iOS应用,该表述是否准确?转型是否始于2014年?
这个表述稍微有点偏差。2014年WWDC苹果确实正式发布了Swift语言,当时官方将其定位为Objective-C的继任者,鼓励开发者尝试,但并没有明确说“彻底放弃ObjC”或者“强制转向Swift”。至于转型的起点,确实是从2014年Swift发布开始的——之后苹果逐年完善Swift的功能、补全生态,越来越多的新项目开始选择Swift,但这是一个渐进的过程,而非一刀切的切换。
3. 据我了解Objective-C源自C语言,该表述是否准确?
完全准确!Objective-C本质上是C语言的超集——它在纯C的基础上添加了面向对象的核心特性,比如类、对象、消息传递机制。你甚至可以在ObjC代码里直接写纯C代码,无缝调用C的函数、引入C的头文件,这也是很多iOS底层框架至今采用ObjC+C混合编写的重要原因。
4. 我还了解iOS操作系统由C、C++、Objective-C及Swift构建,该表述是否准确?
没错,这个描述非常到位。iOS的核心底层组件(比如内核、硬件驱动、性能敏感的模块)主要用**C和C++**编写;系统框架(比如开发者常用的UIKit、Foundation)早期几乎全是Objective-C,后来随着Swift的成熟,苹果也用Swift重写了不少新框架(比如SwiftUI);现在的iOS系统确实同时包含这四种语言的代码,它们各司其职,协同支撑整个系统运行。
5. 另外,我认为2018年iOS应用已采用Swift开发,该表述是否准确?
这个说法可以补充得更严谨一点:2018年的时候,Swift已经发展到4.x版本,稳定性、生态完善度都已经很高,所以大量新启动的iOS应用都选择用Swift开发,甚至苹果自己的很多新功能也开始用Swift实现。但要注意,2018年依然有大量成熟的老项目在维护Objective-C代码,不能说所有iOS应用都改用Swift了——只能说Swift在当时已经成为新应用的主流选择之一。
内容的提问来源于stack exchange,提问作者Phrosen

