Objective-C语言特性深度解析
1. 面向对象与消息传递
在不同的编程语言中,对象的定义和处理方式有所不同。在一些语言里,一切皆为对象,包括数字字面量、字符字面量等。但在Objective - C以及C++、C#和Java等语言中,存在非对象的字面量类型。例如在Smalltalk中, 3 timesDo: [ drawSomething ] 这样的代码是可行的,因为“3”本身就是一个对象。而在Objective - C中,原本并非如此,但随着新的字面量语法的出现,类似的行为也逐渐可用,像 [@3 description] 会返回 @"3" 。
“面向对象编程”这一术语的出现,源于软件行业意识到过程式编程无法满足所有软件项目的需求。当时,任何支持对象概念的语言都被视为“面向对象”语言。如今,除了新的函数式语言外,大多数新语言被称为面向对象语言,主要是因为它们基于类、子类化以及接口或协议的概念,拥有内置的可扩展对象系统。
Objective - C和Smalltalk有一个显著的特性:消息传递。消息和消息传递的概念在这两种语言中根深蒂固,因此可以将它们看作是面向消息的编程语言。从开发者的角度来看,消息是通过方括号语法发送给接收者的。实际上,编译器会将Objective - C的方括号语法转换为C函数调用。例如:
[receiver someSelector];
objc_msgSend(receiver, @selector(someSelector));
这两行代码是等价
超级会员免费看
订阅专栏 解锁全文
67

被折叠的 条评论
为什么被折叠?



