加载中...
1984年由Brad Cox和Tom Love设计,将Smalltalk的消息传递机制嫁接到C上。苹果于1996年收购NeXT后将其确立为macOS/iOS的主要开发语言,直到2014年Swift发布前,所有苹果平台开发几乎都用Objective-C。

| 类型 | 面向对象、动态类型、C超集 |
| 发布年份 | 1984年 |
| 开发者 | Brad Cox、Tom Love;后由Apple推广 |
Objective-C的语法对现代开发者来说颇为奇特:方法调用用中括号[object method:argument],这是直接借鉴Smalltalk的消息传递语法。它是C语言的严格超集:任何合法C代码在Objective-C编译器里同样合法,这让现有C代码库可以直接集成。
运行时(Objective-C Runtime)非常动态:方法实现可以在运行时替换(Method Swizzling),类可以动态扩展(Category),这给测试框架和AOP库带来了极大自由度,但也容易被滥用导致难以调试的问题。[1]
苹果1996年以4.3亿美元收购NeXT,NeXTSTEP系统就是Objective-C编写的,由此成为macOS的基础。Cocoa框架积累了数十年的API设计,大量前缀(NS代表NeXTSTEP)至今保留。
2014年Swift发布后,苹果生态的新项目逐渐转向Swift,但Objective-C不会短期消失:数百万行的遗留代码库、大量成熟的第三方库(如AFNetworking早期版本)、以及苹果自己的框架头文件都还是Objective-C。两语言互操作通过桥接头(bridging header)实现,混合项目在2024年仍然普遍。

| 类型 | 面向对象、动态类型、C超集 |
| 发布年份 | 1984年 |
| 开发者 | Brad Cox、Tom Love;后由Apple推广 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧