OC基本前期准备
1 Objective-C简介
》Objective-C是一种面向对象的计算机语言
》OC不是一种新语言,是在C语言基础上增加了一层最小的面向对象语法,完全兼容C语言
》可以使用oc开发Max OS X平台和IOS平台的应用程序
- Mac OS X是苹果公司为Mac系列产品开发的专属操作系统,目前搭载这款操作系统的设备有:MacBook、iMac、Mac mini
- iOS是由苹果公司开发的手持设备操作系统,目前搭载这款操作系统的设备有:iPhone、iPad、iPod touch、iPad mini
2 Objective-C学习过程
》学习面向对象的思想方法
》
3 Objective-C与C语言的区别
1>源文件的对比
C语言
. h是C语言头文件,用于存放函数声明
. c是C语言源文件,用于实现头文件中声明的方法
OC语言
. h是OC语言头文件,头文件包含类,方法,属性的声明
. m/.mm类的实现文件,参与编译的文件,用来实现类中的方法
#import预处理指令有两个作用:(1)与#include一样,拷贝文件内容(2)可以自动防止文件的内容被重复拷贝
C语言执行步骤:
.c文件->编译(检查语法的合法性)成.o文件 ->链接(将相关的系统函数等其他资源链接起来).out文件(可执行文件)
OC语言执行步骤
.m文件->编译(检查语法的合法性)成.o文件 ->链接(将相关的系统函数等其他资源链接起来).out文件(可执行文件)
2>关键字的对比
C语言的关键字都可以在OC中使用
基本上所有的关键字都是以@开头的(为了与c语言的关键字区分开来),如 @interface @implementation @public等,少部分没有以@开头,如id,_cmd等
注:字符串以@开头
C语言字符串:“hello”
OC语言字符串:@“hello”
屏幕输出:NSLog(@“hello”);//自动换行
NSLog(@“age is %d”,2);
3>数据类型的对比
OC的基本类型:5种,增加了布尔类型
Nil相当于是null,也就是0。
BOOL 只有两个取值真和假
NSObject* OC中的对象类型
id 动态对象类型,万能指针
SEL 选择器数据类型
block 代码块数据类型
布尔类型的输出一般当做整数来用。
OC中类的定义
Objective-C是一种面向对象的语言,定义类是它的基本能力。
那什么是类呢?类是用来描述对象的,它是一系列方法和属性的集合。
Objective-C的类声明和实现包括两个部分:接口部分和实现部分。
想要定义方法也就是C语言的函数,那么就必须有类的存在。
4>流程控制语句对比
C语言的基本流程控制语句都可以在OC中应用
if语句
switch语句
while语句
do while语句
for语句
break关键字
continue关键字
OC中有加强for循环,用于快速迭代数组或集合
for(NSString * name in NSArray){
NSLog(@"%@",name);
}
5>函数[方法]定义和声明的对比
C语言中函数的声明和实现
函数声明:int sum(int a,int b);
函数实现:int sum (int a,int b){return a+b;}
OC中的方法
方法的声明:-(int)sum :(int)a and (int)b;
方法的实现:-(int)sum :(int)a and (int)b{ return a+b;}
注意:方法只写在类里面,而函数可以写在任何地方
对象方法:使用对象调用的方法
类方法:使用类名调用方法
6>面向对象新增特征
封装性
继承性
多态性
7>面向对象新增语法
1>属性生成器 @property
是用来简化代码的
2>分类
在不修改原有类的情况下新增功能
分类与继承
使用分类扩展类,无需子类化
3>协议
使用协议声明方法
协议类似于C#,java中的接口
@protocal
4>fundation框架
很多工具和方法 工具箱,很重要
复杂东西变简单
8>新增异常处理
更好的与swift接轨