Objective-C概述
Objective-C是一种面向对象的计算机语言,1980年代初布莱德.考斯特在其公司Stepstone发明Objective-C,该语言是基于SmallTalk-80。
1988年NeXT公司发布了OC,他的开发环境和类库叫NEXTSTEP, 1994年NExt与Sun公司发布了标准的NEXTSTEP系统,取名openStep。
1996年苹果公司开始支持Next,把nextstep/openstep用于Mac os X操作系统开发,他的版本和开发环境较做Cocoa,使用Objective-C作为基础语言,开发工具xcode和interface Builder。
2007年苹果公司推出Objective-C 2.0,Objective-C是MAC OS X和iOS的开发基础语言。
Objective-C特点
1兼容性
2字符串
3类
4方法
5.属性
6.协议和分类
1.兼容性
Objective-C是在C语言的基础上增加了一层最小的面向对象语法,OC完全兼容C语言,可以在OC代码中混入C语言代码,甚至是C++代码。
2.字符串
OBjective-C通常不使用C语言风格的字符串。大多数情况下是使用Foudation框架的NSString类型的字符串。NSString类提供了字符串的类包装,支持Unicode、Printf风格的格式化工具等。它是在普通的双引号字符串前防止一个@符号,如下面的例子所示。
NSString *my String = @"My String";
NSString *anotherString = [NSString stringWithFormat:@"%d %s",1,@"String"];
3.类
定义类是Objective-C的基本能力。Objective-C的类声明和实现包括两个部分:接口部分和实现部分。
4.方法
定义方法也是Objective-C的基本能力。Objective-C中方法不是采用"."运算符,而是"[]"运算符。有时候方法调用也称为消息发送。
5.属性
属性是Objective-C 2.0提出的概念,它是代替对成员变量访问的"读取方法(get)"和"设定方法(set)"的手段。为了对类进行封装,一般情况下不直接访问成员变量,而是通过属性访问。
6.协议和分类
协议
Objective-C中的协议类似于JAVA中的接口或C++的纯虚类(没学习过JAVA和C++,视频里面老师讲了,就先记录下来),只有接口部分定义没有实现部分,即只有h文件没有m文件。OC中协议也叫代理。自己本身不实现。由第三方谁要使用谁去实现。
分类
Objective-C中的分类是类似于继承机制的,通过分类能够扩展父类的功能。
OC文件扩展名
Objective-C代码的文件扩展名
由于在Objective-C中可以编写多种形式的源文件,因此可以通过不同的文件扩展名来区分。
文件扩展名说明:
.c C语言源程序文件
.cc或.cpp C++语言源程序文件
.h头文件
.m Objective-C源程序文件 代码包含有OC和C语句
.mm Objective-C++原程序文件 代码包含有OC和C++的语句
.o 编译之后的文件