首页 > 编程语言 > 详细

黑马程序员-----OC语言快速入门

时间:2015-12-21 01:57:09      阅读:280      评论:0      收藏:0      [点我收藏+]

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -----

          

第一讲  OC语言快速入门之“helloworld”

//c中的引入头文件的方式

//#include <stdio.h>

 

//这是c的引入方式

//#include<Foundation/Foundation.h> 

#import <Foundation/Foundatin.h>  //引入头文件

 

//1.为什么要使用import,import和include的区别

//include和import 都是引入头文件

//import引入的头文件,可以防止重复包含

//include 它是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题

 

//2.import 和 @class 的区别

 

 

//3. Foundation/Foundation.h 是什么东西 

//           1)头文件

//           2)头文件的位置

//           3)文件包含了其他的大量的头文件

//           作用: 把Foundation.h引入了,等于把OC的库文件都引过来了

 

int main(int argc,const char *argv[]){

   

    //自动释放池,用于回收对象的储存空间

    @autoreleasepool{

           

             //是一个函数

            //作用:向控制台输出字符串

           NSLog(@"Hello,World!");

   }

      return 0;

}

 

注意:

1.cc++中采用#include指令,在本例中也可以采用#include,#import  #include改进指令,它可以防止头文件重复包含问题。

 

2.int main (int argc ,const char *argv[]) ,这个方法是程序的入口。参数argc-参数数目,argv-参数值。

 

3.@autoreleasepool {    }这是一个自动释放池,用于回收对象的储存空间

 

4.NSLog Foundation框架提供的Objective-C日志输出函数,与标准C中的printf函数类似,并可以格式化输出。

 

5.最后是return 0语句,它表示要终止main的执行,一般情况下0代表正常结束,非0代表异常情况这是沿用了C语言的习惯。

  

第二讲   NSLog函数使用方法

本小节知识点:

      1、【了解】NSLog的介绍 

      2、【掌握】NSlog使用方法

      3、【了解】NS前缀的含义

1.NSLog的介绍

 

2.使用方法  

#import <Foundation/Foundation.h>

int main(){

@autoreleasepool{

 //NSLogprintf使用的差异

 //1.NSLog 会自动换行  printf不会自动换行

 //2.NSLog 会自动输出时间等项目信息,printf不会输出调试信息

 //3.NSLog 函数的参数是一个NSString 对象,printf是一个字符串常量指针

  

    NSLog(@"Hello, World!");

    printf("Hello, World!");

}

 //2NSLog 格式化输出的问题

   int a= 5;

   float f1 = 2.3f;

   double d1 = 3.14;

   char ch = ‘X‘;

   char *str = "张三丰";

   //如果能够运行,说明OC向下兼容C

   printf("%d,%.2f,%.2f,%c\n",a,f1,d1,ch);

  printf("%s\n",str);

   //NSLog格式化输出

   NSLog(@"%d,%.2f,%.2f,%c\n",a,f1,d1,ch);

   NSLog(@"--->%s",str);    

   //不能这么写

 

    //OC中自己特有的字符串表示方法

   //%@输出字符串

   NSString *str1 = @"张三丰";

   NSLog(@"%@",str1);

  

   //使用printf能够打印str1

   //不能,NSString OC特有的,C不支持

   printf("===>%@\n",str1);

   return 0;

}

3.NS前缀

   NS来自NeXTStep的一个软件  NeXT Software

 

 

第三讲  OC中@符号的使用方法

“@”的使用方法

      1)@“” 这个符号表示将一个c的字符串转化为OC中的字符串对象NSString

      2)@符号     OC中大部分的关键字都是以@开头的,比如  @interface  ,@implementation , @end,@class 等

 

                    第四讲  OC和C差异学习

本小节知识点:

1、【了解】源文件对比

2、【了解】基本语法对比

 

1、源文件对比

 

思考&实现1:

1)C语言中,我们遇到不同后缀的文件有哪些?

  .c                               .o                      .out                       .h

 c语言的源文件      目标文件      可执行文件     头文件

 

 2OC里面

    .h            头文件

    .c             C语言源文件

   .cpp.cc     c++语言的源文件

   .m             Objective-C的源文件

   .mm          Objective-C++的源文件 

常见的有两种:

    .h    头文件,头文件包含方法,属性的声明。

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

 

2、基本语法对比

    1)数据类型对比学习

        C中常用的数据类型

                                                                               短整型short

                                                  整型                       整型int

                                                                              长整型long

                          基本类型           字符型char

                                                                              单精度float  

                                                   实型                  

                                                                              双精度double

数据类型                                  

                                                    数组

                         构造类型              结构体struct                                 

                                                    共用型union

                                                    枚举类enum               

                        

                         指针类型

                         空类型void

                         定义类型typedef                   

 

 

OC中的数据类型

                                                               数值型                      整型类型

                                                                                                浮点型

                            基本数据类型                字符型(char)

                                                               布尔型(BOOL)

                                                               空类型(void)

OC数据类型                           

                               Block类型 

                                                               (class)

                                指针数据类型     

                                                                id类型

                               特殊类型(SELnil)

 

注意:

            1.C语言的关键字都可以在OC源程序中使用

            2.OC新增的关键字在使用时,注意部分关键字以“@”开头

 

3、OC和C对比

   

/*

    OC 和  C 对比学习

 

    1)   文件的差异

 

   2)   数据类型差异

 

     3)   关键字差异

 

    4)   流程控制语句

 

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

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

    NSArray  *arr = @[@"one",@"two",@"three"];

   //OC中的增强型for循环

  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;

 

  1.方法申明:

    -(int)sum:(int) a and:(int) b;

 

  2.方法定义

    -(int)sum:(int) a and:(int)b{

         return a+b;

    }

*/

 

第四讲  OC新增的数据类型介绍以及新增异常捕捉方法

1OC新增的数据类型介绍

  BOOL  id  class  block  SEL  nil

1)逻辑型

       1Boolean

       2BOOL 也是做逻辑判断

/*

    1.新增的数据类型介绍

 

      Boolean(布林)

     作用用来存放逻辑值  1.真(非0  2.假(0))

                用来做判断

      储存的值: true()  1         false()  0

      OC中也可以使用true 表示真  false表示假

 

       用来存放true  false的结果的变量一般我们声明为 Boolean

       Boolean flag = true;

      if(flag){

     NSLog(@" %d",flag);

     }else{

      NSLog(@" %d",flag);

   }

 

    BOOL

    作用: 也是用来保存逻辑值

    取值:  YES()       NO()

     BOOL flag2  =  YES;

     if(flag2){

    NSLog(@"BOOL  YES   %d",flag2);

}else{

      NSLog(@"BOOL  NO  %d",flag2);

   }

 

     2.异常捕捉机制

        异常:程序运行时候有bug

        捕捉机制:排除错误

        @try{

                 //如果有异常

                //1/0

       }

       @catch(NSException *exception){

                   //捕捉最具体的异常类型

       }

       @catch(NSException *ne){ 

                      // 捕捉比较重要的异常类型

       }

       @finally{

       }

*/

 

#import <Foundation/Foundation.h>

 

int main(int argc,const char *argv[]){

@autoreleasepool{

//1. Boolean 类型的使用

  Boolean flag = true;

  //false  0

  flag = false;

  //true  1

  printf("flag= %d\n",flag);

  //Boolean类型的变量经常用于条件判断

  if(flag){

      printf("xxxxxx\n");

  }

 

  //2.存放逻辑值的另外一种方法

  //BOOL 它的取值  YES  NO

  //YES  1

  // NO   0

   BOOL  flag2 = YES;

   printf("YES = %d\n",YES);

   printf("flag2 = %d\n",flag2); // 1

        

  //flag2  = 0;

     if(flag2){

      printf("000000\n");

  }    

  // 1/0  错误的 不能

  int a =1;

  int b=1;

  b = NO;

  //注意;try  catch 并不能检测所有的错误

  @try{

     //此处放的是有可能出错的代码

  int result = a/b;  //这个错误捕捉不了

  }

      @catch (NSException *exception){

       //此处放出错以后  我们处理的代码

  }

  @finally {

      //不管有没有出错,这里的代码一定会执行

      printf("fengjie!\n");

  }

}

return 0;

}

 

黑马程序员-----OC语言快速入门

原文:http://www.cnblogs.com/xiaokang520/p/5062336.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!