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

------- 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值