Objective-C,一下简称OC,是一种完全建立在C语言基础上的语言,在C语言主体中加入面向对象的特性,也可以说,OC是C语言的拓展。任何C语言程序,不用经过修改,就能完全通过OC 的编译,可见,在语法上,OC是完全兼容C语言的语法的。

OC的消息传递机制。同C++等面向对象的编程语言相同,包括了类,对象和方法这三个概念。对于OC而言,与其说对象互相调用方法,不如说对象之间互相传递消息更为精确,即一个类的对象调用方法视为改对象向声明方法的对象发送消息,所有方法都被视为对消息的回应。所有消息处理直到运行时(runtime)才会动态决定,并交由类自行决定如何处理收到的消息。如果类收到了一个无法处理的消息,程序只会抛出异常,不会出错或崩溃。

OC中类的定义与实现。也就是OC程序中得@interface(定义)和@implementation(实现)两个部分。

OC中得协议。协议是OC的有一个优雅之处,协议可以理解为接口的统一,十一组没有实现的方法列表,任何类,都可以通过遵守协议,来具体实现协议中的方法。但是与Java语言中接口的概念并不完全相同,即一个类可以在不声明它符合某个协议的情况下,实现这个协议所包含的方法,也即实质上符合这个协议,而这种差别对外部代码而言是不可见的。OC的协议带来了C++多重继承的一些优点,使接口可以得到共享。通过协议,一个类即使对另一个类的身份(也就是类的类型)一无所知,也可以和它进行由协议定义的特定目的的交流。

OC的运行时。OC是具有动态类型的,也就是运行时状态。消息可以发送给任何对象实体,无论该对象实体的公开接口中有没有对应的方法。虽然OC的语法中严格遵循先声明,后调用的先后顺序。但是,由于OC的类与消息的关系的松散性,对于向没有公开消息接口的对象发送消息,程序可以通过编译,而不会crash,而真正响应该消息的对象,只取决于运行时期该对象的真正形态,若该对象的确可以回应消息,则依旧运行对应的方法。运行时,对于发出的消息,被某个任意类型的对象接收后,该对象有三种处理消息的可能手段,第一是回应该消息并运行方法,若无法回应,则可以转发消息给其他对象,若以上两者均无,就要处理无法回应而抛出的例外。

除此之外,OC还拥有很多与其他编程语言相比之下的优势和亮点,比如属性、类的拓展、封装、多态等等。从苹果公司在1996年收购NeXT之后,持续更新,并且加强该语言本身的稳定性。到2010年5月,OC已经进入编程语言前十名,到2015年1月,TIOBE发布的编程语言排行榜显示,OC已经是继C、 Java之后,第三大编程语言。