ios 开发语言Objective-C 小白入门科普
·
ios 开发语言Objective-C 小白入门科普
🤔 开篇:你手机上的 App 是怎么做出来的?
当你打开 iPhone 上的微信、抖音、淘宝…你有没有想过,这些 App 是用什么"语言"写出来的?
答案就是:Objective-C(简称 OC)或 Swift
今天我们聊聊 iOS 开发的"老前辈"—— Objective-C
📱 什么是 Objective-C?
用人话说:
Objective-C 就是一种编程语言,专门用来开发苹果设备(iPhone、iPad、Mac)上的应用程序。
类比理解:
- 盖房子需要工具 → 编程需要语言
- 中文、英文是人类交流的语言 → Objective-C 是人和计算机交流的语言
- 就像厨师用刀切菜 → 程序员用 Objective-C 写 App
🍎 Objective-C 的"身世"
时间线故事:
1980年代
📅 Objective-C 诞生
└─ 目标:给 C 语言加上"面向对象"能力
1988年
🖥️ 乔布斯的 NeXT 公司采用 OC
└─ 用来开发 NeXT 电脑的操作系统
1996年
🍎 苹果收购 NeXT
└─ OC 成为 Mac 电脑的开发语言
2007年
📱 iPhone 横空出世!
└─ OC 成为唯一的 iOS 开发语言
2008-2014年
🌟 黄金时代
└─ App Store 所有应用都用 OC 开发
└─ 微信、QQ、淘宝的第一版都是 OC
2014年
🆕 Swift 语言发布
└─ 苹果推出的新语言,更现代、更简洁
2025年(现在)
⚖️ 并存时代
├─ 新项目:多用 Swift
└─ 老项目:大量 OC 代码仍在维护
🎯 为什么要学 Objective-C?
“Swift 不是更新吗?为什么还要学 OC?”
三个理由:
1️⃣ 历史遗产太多
现实情况:
- 微信、QQ、淘宝等大厂 App = 几百万行 OC 代码
- 不可能一夜之间全改成 Swift
- 新功能可能用 Swift,但老代码还是 OC
结论:
→ 想进大厂做 iOS?必须会读 OC 代码
→ 想维护老项目?必须会 OC
2️⃣ 很多框架文档是 OC 的
苹果官方文档:
- 很多示例代码还是 OC
- 第三方开源库:大量 OC 实现
举例:
- AFNetworking(网络请求库)→ OC
- SDWebImage(图片加载库)→ OC
- 很多教程和 StackOverflow 答案 → OC
3️⃣ 理解底层原理
OC 更接近系统底层:
- 理解内存管理(引用计数)
- 理解消息传递机制
- 理解 Runtime(运行时)
就像:
- 学自动挡之前,最好懂手动挡原理
- 学 Swift 之前,懂 OC 会更扎实
💻 Objective-C 长什么样?
先看一个最简单的例子:
需求: 在屏幕上显示"Hello, World!"
Objective-C 代码:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 创建一个标签
UILabel *label = [[UILabel alloc] init];
label.text = @"Hello, World!";
label.frame = CGRectMake(100, 100, 200, 50);
// 添加到屏幕
[self.view addSubview:label];
}
@end
🆚 Objective-C vs Swift
同样的功能,两种语言对比:
任务:创建一个标签并设置文字
Objective-C:
UILabel *label = [[UILabel alloc] init];
label.text = @"Hello";
[self.view addSubview:label];
Swift:
let label = UILabel()
label.text = "Hello"
self.view.addSubview(label)
对比表:
| 特性 | Objective-C | Swift |
|---|---|---|
| 诞生年份 | 1980s | 2014 |
| 语法 | 啰嗦(中括号调用) | 简洁(点语法) |
| 类型安全 | 弱类型 | 强类型 |
| 学习曲线 | 较陡(概念多) | 较平缓 |
| 性能 | 快 | 更快 |
| 现状 | 维护为主 | 新项目首选 |
| 就业 | 大厂必备技能 | 新公司更多 |
💼 职业前景
2025年 iOS 开发市场现状:
🎯 技能要求:
├─ 必须会:Swift(新项目)
├─ 必须会:Objective-C(维护老代码)
├─ 加分项:SwiftUI(最新界面框架)
└─ 加分项:跨平台(Flutter/React Native)
📈 市场需求:
- 新项目:Swift 为主
- 大厂:OC + Swift 混编
- 外包公司:仍有大量 OC 项目
更多推荐
所有评论(0)