黑马程序员技术交流社区

标题: C和OC的差异 [打印本页]

作者: 小腼腆不是错    时间: 2015-8-12 21:49
标题: C和OC的差异
OC 和 C对比学习

     1)文件的差异

     2)数据类型差异

     3)关键字差异

     4)流程控制语句

        OC中并没有增加新的流程控制

        OC中提供一种增强型的for循环

        NSArray  *arr=@[@"one",@"two",@"three"];
  
        for(NSString *str in arr){
  
             NSLog(@"%@",str);
        
        }
  
    5)OC中函数的定义和声明的差异
     
       C语言中的函数

       int max(int x,int y);
      
       int max(int x,int y){
  
             return x>y?x:y;
       }
  
  
       OC中把函数称之为方法

       +(void) test;
       -(void) test;
  
       -(int)max:(int)x andY:(int) y;
  
  
  


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
     @autoreleasepool {
         
         
         NSArray  *arr=@[@"one",@"two",@"three"];
         //OC中的增强型for循环
        for(NSString *str in arr){
            
             NSLog(@"%@",str);
            
         }
         
         
     }
     return 0;
}

OC和C的差异二
1)OC中新增加的数据类型

     (1)Boolean (布林)
        作用:用来存放逻辑值 (1、真(非0)    2、假(0))
             用来做判断
        存储的值:true(真 1)    false(假 0)

         Boolean flag = true;
  
         if(flag){
  
             NSLog(@"真 %d",flag);
         }else{
  
             NSLog(@"假 %d",flag);
         }
     
  
     (2)BOOL
  
         作用:也是用来保存逻辑值
        取值:YES(真 1)   NO(假  0)

         BOOL flag2 = YES;
         if(flag2){
  
              NSLog(@"真 %d",flag);
  
         }else{
  
              NSLog(@"假 %d",flag);
         }
  
  
  
  2) OC中的异常捕捉机制

        异常: 程序运行的时候有bug
        捕捉机制:排除错误

  
     @try {
           //如果有异常
           1/0
        < #statements#>
  
           。。。。。。。
}
  @catch (NSException *exception) {
           //捕捉最具体的异常类型

        < #handler#>
  }
  @catch (NSException *ne) {
           //捕获一个比较重要的异常类型。
?
  }
  @catch (id ue) { //再次掷出捕获的异常。
}
  @finally { //不管有没有异常finally内的代码都会执行。
        < #statements#>
  }


  
  
  
  


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
     @autoreleasepool {
         
         
         //Boolean的使用
        //true 1   false  0
         Boolean flag = true;
         
         if(flag){
            
             NSLog(@"真 %d",flag);
         }else{
            
             NSLog(@"假 %d",flag);
         }

        //BOOL类型
        BOOL flag2 = YES;
         if(flag2){
            
             NSLog(@"BOOL YES 真 %d",flag2);
            
         }else{
            
             NSLog(@"BOOL NO 假 %d",flag2);
         }
         
         
         
        
     }
     return 0;
}

作者: WPeng    时间: 2015-8-12 23:08
已经蒙圈了...
作者: fersh    时间: 2015-8-12 23:15
学习了,有点看不懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2