黑马程序员——OC与C语言的差异学习

来源:互联网 发布:淘宝索尼丽驰专卖店 编辑:程序博客网 时间:2024/05/29 21:18

------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------

差异性(一)

1、源文件对比

C语言中常见的文件:.c源文件  .o目标文件   .out可执行文件   .h头文件

OC中常见的文件有两种:

.m源文件:类的实现文件,参与编译的文件,用来实现类中声明的方法)

.h头文件:包含方法、属性的声明

2、基本语法对比

1)数据类型对比



对比多出来的部分:
BOOL:字面常量值是YES或者NO
NSObject *:OC中的对象类型
id:动态对象类型,万能指针
SEL:选择器数据类型
block:代码块数据类型

2)变量的定义对比


注意:(1)C语言的关键字都可以在OC源程序中使用
           (2)OC新增的关键字在使用时,注意部分关键字以"@"开头

3)流程控制语句对比

C语言中:(1)if else (2)switch (3)while (4)do while (5)for
OC中新增:增强型for循环,可以快速遍历数组、字典等集合
NSArray *arr=@[@"one",@"two",@"three"]; for(NSString *str in arr){      NSLog(@"%@",str);       }

4)函数(方法)定义和声明对比

C语言中函数的声明和实现
(1)函数声明:
int sum(int a,int b);

(2)函数定义:
int sum(int a,int b){     return a+b;}
OC语言中函数习惯称之为“方法”
(1)方法声明:
-(int)sum:(int) a and:(int) b;

(2)方法定义:
-(int)sum:(int) a and:(int )b{          return a+b; }

差异性(二)

1、OC新增的数据类型介绍

逻辑类:
(1)Boolean

Boolean 类型指的是用于存储真值和假值的变量,一般用于程序流程控制 。

Boolean 类型数据允许取值 true 或 false ,也可以是0或非0的整数替代 true 和 false  

Boolean flag = true;if(flag){      NSLog(@"真 %d",flag);}else{      NSLog(@"假 %d",flag);}
(2)BOOL
存放逻辑值的另一种方法,取值为YES或者NO
BOOL flag2 = YES;if(flag2){        NSLog(@"真 %d",flag);}else{        NSLog(@"假 %d",flag);}

2、OC中的新增异常捕捉方法

@try...@catch...@finally
格式:
@try {     //如果有异常        1/0       < #statements#>      ......}     @catch (NSException *exception) {      //捕捉最具体的异常类型        < #handler#>}     @catch (NSException *ne) {      //捕获一个比较重要的异常类型。 }     @catch (id ue) { //再次掷出捕获的异常。}     @finally { //不管有没有异常finally内的代码都会执行。       < #statements#>     NSLog(@"@",exception);//增加这句可以打印错误原因}
这是OC中的异常捕捉机制,代码有可能抛出的异常是封闭在一个@ try块。 @catch()块包含为@ try块抛出的异常处理逻辑。一个@ finally块包含代码必须执行是否引发异常与否。可以通过使用@throw指令抛出一个异常,这基本上是一个对Objective – C对象的指针。然后使用NSException对象的指针打印出相关的错误原因。


0 0
原创粉丝点击