Objective-C 是一门面向对象的编程语言,由 Brad Cox 和 Tom Love 于 1984 年创建。它在标准 C 语言的基础上增加了 Smalltalk 风格的面向对象消息传递机制。Objective-C 是 iOS 和 macOS 应用开发的奠基性语言。
Objective-C 的核心定位是 C 语言的性能 + Smalltalk 的面向对象。它提供了:
Objective-C 由 Brad Cox 和 Tom Love 于 1984 年创建,最初是为了 将 Smalltalk 的面向对象特性引入 C 语言。1988 年,NeXT 公司(Steve Jobs 创立)选择了 Objective-C 作为其操作系统 NeXTSTEP 的开发语言。1996 年 Apple 收购 NeXT,Objective-C 成为 macOS 和 iOS 的官方语言。
int main(int argc, char *argv[]).h 文件.m 文件//、/* */[object method]// Objective-C 程序示例
#import
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hello, Objective-C!");
}
return 0;
}
@interface Person : NSObject { NSString *_name; int _age; }@implementation Person@property (nonatomic, strong) NSString *name;-(void)greet;-(instancetype)initWithName:(NSString *)name age:(int)age;+(instancetype)personWithName:(NSString *)name age:(int)age;// Person.h
#import
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) int age;
- (instancetype)initWithName:(NSString *)name age:(int)age;
+ (instancetype)personWithName:(NSString *)name age:(int)age;
- (void)greet;
@end
// Person.m
#import "Person.h"
@implementation Person
- (instancetype)initWithName:(NSString *)name age:(int)age {
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}
+ (instancetype)personWithName:(NSString *)name age:(int)age {
return [[self alloc] initWithName:name age:age];
}
- (void)greet {
NSLog(@"Hello, I'm %@, %d years old.", self.name, self.age);
}
@end
[receiver message][receiver message:param1 withParam2:param2]@protocol Greetable - (void)greet; @end @interface Person : NSObject @optional@required@interface NSString (Reverse)// NSString+Reverse.h
#import
@interface NSString (Reverse)
- (NSString *)reverseString;
@end
// NSString+Reverse.m
#import "NSString+Reverse.h"
@implementation NSString (Reverse)
- (NSString *)reverseString {
NSMutableString *reversed = [NSMutableString string];
NSInteger length = [self length];
for (NSInteger i = length - 1; i >= 0; i--) {
[reversed appendFormat:@"%C", [self characterAtIndex:i]];
}
return reversed;
}
@end
^{ NSLog(@"Hello"); }^(int x) { return x * 2; }int (^square)(int) = ^(int x) { return x * x; };Objective-C 的运行时非常灵活,支持动态类型、方法交换、反射等高级特性。
Objective-C 可以直接调用任何 C 代码,也可以调用 C++ 代码(通过 Objective-C++)。
Cocoa 和 Cocoa Touch 框架是 macOS 和 iOS 开发的基础,Objective-C 是它们的原生语言。
经过几十年的发展,Objective-C 拥有大量成熟的开源库和工具。
学习 Objective-C 有助于深入理解 Apple 平台的底层机制。
掌握 C 语言基础(指针、内存管理)
Objective-C 语法、类与对象、消息传递、属性
Foundation 框架、内存管理(ARC)、协议、类别、块
维护老项目、Swift 混编、理解 Cocoa 框架
Objective-C 是 Apple 生态的"奠基者"。
虽然 Swift 已经取代了 Objective-C 成为 Apple 平台的官方语言,但 Objective-C 的 历史地位不可替代。它定义了 macOS 和 iOS 开发的基础架构,影响了数百万开发者和数十亿用户。
如果你在维护老项目,Objective-C 是必备技能。如果你想深入理解 Apple 框架,Objective-C 也是重要的学习内容。即使在新项目中,了解 Objective-C 也能帮助你更好地理解底层机制。
"Objective-C 虽然老去,但它的精神活在 Swift 中。" 🍎