OC学习篇之---第一个程序HelloWorld

从这篇开始我们就开始学习OC的相关知识了,在学习之前,个人感觉需要了解的其他的两门语言:一个是C/C++,一个是面向对象的语言(当然C++就是面向对象,不过这里最好还是Java)。在干活之前,得先找到一个好工具,不过伟大的苹果公司已经给我们准备好了一个开发利器:XCode。在这方面Google可能做的就差了点,其实在开发Android的人大部分人都喜欢用Eclipse,但是Eclipse的可视化编程的效果和XCode差的不是一个级别的。当然Google后来开发了一个AndroidStudio,反正我没用过,不知道效果怎么样,应该不怎么样,不然Eclipse还是那么受欢迎。

学习任何一门语言都是从HelloWorld开始的,这个是一个套路了,那么OC也不例外,我们就从第一个HelloWorld开始,Xcode下载还是很方便的,这里就不做太多的介绍了,我们打开Xcode:点击新建一个Project:

我们现在时学习OC,所以选择下面的OS X,然后选择命令行,点击下一步:

这个和Android就差不多了,第一个是项目名,第二个是组织者名称(企业开发就是公司的名称,个人开发就是个人的名字,这个值会在每个代码中体现出来的,作用不大,可以忽略),第三个是组织者的唯一标识,和Android中应用的packagename,第四个就是选择开发语言,这里选择OC,不过他还有其他选项:

Swift,C++,C,所以说吧,Xcode还是很强大的,而且超级方便,Eclipse中也是可以开发C/C++的,但是需要安装插件,感觉用起来也不是很方便。

后面的工作就是选择文件夹了,简单。新建一个工程之后,我们在左侧栏中可以看到项目的结果,其中main.m源文件是自动创建的。

* C语言的源文件拓展名为".c",OC的源文件拓展名为".m"
* main.m文件是我们这个程序中的唯一一个源文件
* 编译器会将.m文件编译为.o目标文件,比如main.m编译成功后会变成main.o文件

 

下面就来看一下代码:

[objc] view plain copy
  1. //  
  2. //  main.m  
  3. //  01_HelloWorld  
  4. //  
  5. //  Created by jiangwei on 14-10-10.  
  6. //  Copyright (c) 2014年 jiangwei. All rights reserved.  
  7. //  
  8.   
  9. //OC中使用#import导入一个头文件  
  10. //和#include<Foundation/Foundation.h>效果是相同的,但是还是有区别的,后续会说明  
  11. #import <Foundation/Foundation.h>  
  12.   
  13. int main(int argc, const charchar * argv[]) {  
  14.     //创建一个自动释放池  
  15.     @autoreleasepool {  
  16.         //把"Hello,World!"字符串打印到控制台  
  17.         //打印的时候是自动换行的  
  18.         //OC语言中字符串用@""表示  
  19.         //NS开头都是OC里面的命名习惯,需要区分,jobs成立的Next setp公司有关系  
  20.         NSLog(@"Hello, World!");  
  21.           
  22.         //OC中常用的类型  
  23.         NSInteger s = 10;  
  24.           
  25.         //布尔类型  
  26.         BOOL a = YES;//NO  
  27.         BOOL b = TRUE;//FALSE  
  28.           
  29.         //OC中的字符串(不属于基本类型,是对象类型,是指针)  
  30.         NSString *str = @"jiangwei";  
  31.           
  32.         //%@打印一个字符串对象  
  33.         NSLog(@"%@",str);  
  34.           
  35.         //表示范围的结构体  
  36.         //第一个参数是起始位置  
  37.         //第二个参数是范围长度  
  38.         NSRange rang = {1,3};  
  39.         NSMakeRange(1,3);//等价于上面的一行代码  
  40.     }  
  41.     return 0;  
  42. }  

看到了吧,第一个HelloWorld程序都是main函数开始的,不过这个和C更像。。

 

来分析代码:

[objc] view plain copy
  1. #import <Foundation/Foundation.h>  

其中#import关键字是用来导入头文件的,类似于C中的#include,不过他们两还是有区别的,后面的例子中会说明,当然这个和Java中的import关键字效果差不多,不过OC不是开源的,所以,只能导入头文件,我们也只能看到头文件中的定义,是看不到源码的,但是Java中点击就可以查看源码了,这个苹果就没Google好了。。

 

这里的Foundation.h头文件是系统提供的最基本的框架,后面我们还是可以自己开发框架的,这个就和C语言中的stdio.h效果类似,是系统给我们提供了一个最基本的开发库。我们按住Command键(功能和Window中的Ctrl一样的),单击就可以查看Foundation.h中的所有定义了:

(如果我们想回去的话,可以点击control+command+左右箭头,这个类似于Eclipse中的Alt+左右箭头)


其实它内部全是导入头文件的代码,而这些头文件就是组成这个系统框架的基础,我们后面的学习就是一个一个来学习的。

 

接着看代码:

[objc] view plain copy
  1. //创建一个自动释放池  
  2.     @autoreleasepool {  
  3.         //把"Hello,World!"字符串打印到控制台  
  4.         //打印的时候是自动换行的  
  5.         //OC语言中字符串用@""表示  
  6.         //NS开头都是OC里面的命名习惯,需要区分,jobs成立的Next setp公司有关系  
  7.         NSLog(@"Hello, World!");  
  8.           
  9.         //OC中常用的类型  
  10.         NSInteger s = 10;  
  11.           
  12.         //布尔类型  
  13.         BOOL a = YES;//NO  
  14.         BOOL b = TRUE;//FALSE  
  15.           
  16.         //OC中的字符串(不属于基本类型,是对象类型,是指针)  
  17.         NSString *str = @"jiangwei";  
  18.           
  19.         //%@打印一个字符串对象  
  20.         NSLog(@"%@",str);  
  21.           
  22.         //表示范围的结构体  
  23.         //第一个参数是起始位置  
  24.         //第二个参数是范围长度  
  25.         NSRange rang = {1,3};  
  26.         NSMakeRange(1,3);//等价于上面的一行代码  
  27.     }  

这里有一个知识点就是自动释放池概念,这里我们就不太深入介绍了,后面会有专门的一篇文章去介绍他,因为他是OC语言的一个特色,而且也是最难理解的一个知识点,他和Java中的垃圾回收器差不多。我们在创建一个工程的时候,这个自动释放池的代码会自动创建的,我们只要在这个池子中写我们的代码就可以了。

 

[objc] view plain copy
  1. NSLog(@"Hello, World!");  

这句和C中的printf一样,以及Java中的System.out.println效果都是一样的,打印结果,不过他和printf更像,因为他支持格式化输出。

 

在看一下OC中的一个很重要的对象是字符串,而且我们在定义字符串对象的时候,要加@符号,这个和Java是有区别的,不过还有其他方式去创建字符串的,效果和Java很想,比如用构造方法去创建。后面会介绍

 

[java] view plain copy
  1. //OC中的字符串(不属于基本类型,是对象类型,是指针)  
  2. NSString *str = @"jiangwei";  

 

使用NSLog打印对象,用格式化输出,占位符是%@,打印字符串的对象的时候,输出的是字符串的值,这个和Java中的System.out.println输出结果一样,其实就是调用对象的toString方法,当然OC中也是会调用一个方法的,后面会说。

[java] view plain copy
  1. //%@打印一个字符串对象  
  2. NSLog(@"%@",str);  


其他就是OC中的基本类型了,这里就不做介绍了。

好了,到这里一个HelloWorld就介绍完了。

了解了OC中的定义变量方法,打印信息方法,基本类型等知识点。点击Xcode左上角的运行按钮:


我们可以看到运行结果了,同时右上角的那几个按钮,就是选择开启四个方向上的窗口,多次点击就知道功能了。

posted on 2016-11-02 19:45  dreamDeveloper  阅读(1579)  评论(0编辑  收藏  举报

导航