Objective-C(简称 ObjC)是一种面向对象的编程语言,是苹果公司早期主推的 iOS 和 macOS 应用开发语言,在 Swift 出现之前,几乎所有的苹果系统 App 都是用它写的。
Objective-C 是 C 语言的超集,增加了面向对象的特性(如类、继承、消息传递等),并广泛用于 iOS/macOS 开发。
Objective-C特点
1、C 语言超集:Objective-C 是在 C 语言基础上添加面向对象特性,所以所有 C 代码都能直接在 Objective-C 中用。
2、消息机制方法调用不是传统的函数调用,而是发送消息(类似 Smalltalk)。比如 [object doSomething]。
3、动态特性:运行时强大,允许动态添加方法、交换方法实现(Method Swizzling)等。
4、早期 iOS 语言:UIKit、Foundation、Core Data 等大部分框架都是以 Objective-C 编写的。
5、与 Swift 可互操作:Swift 可以无缝调用 Objective-C 代码,便于旧项目升级。
与Swift语法对比
1、定义类:
@interface MyClass : NSObject // Objective-C
class MyClass {} // Swift
2、创建对象
MyClass *obj = [[MyClass alloc] init]; // Objective-C
let obj = MyClass() // Swift
3、方法调用
[obj doSomething]; // Objective-C
obj.doSomething() // Swift
4、字符串
NSString *str = @"Hello"; // Objective-C
let str = "Hello" // Swift
5、条件判断
if (x > 0) { ... } // Objective-C
if x > 0 { ... } // Swift
Objective-C代码示例
Objective-C写一个简单按钮。
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"点我一下" forState:UIControlStateNormal];
button.frame = CGRectMake(100, 100, 100, 40);
[button addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)buttonClicked {
NSLog(@"按钮被点击了");
}
@end
Objective-C 常用场景
维护老项目(很多企业项目仍用 ObjC)。
使用一些只提供 ObjC 接口的第三方库。
学习苹果底层机制(Runtime、KVC/KVO)。
相关文章
iOS开发框架UIKit:https://fangjunyu.com/2025/05/22/ios%e5%bc%80%e5%8f%91%e6%a1%86%e6%9e%b6uikit/