码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员--01.Object-C--第一次亲密接触

时间:2015-03-30 18:22:08      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

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

  等了好久终于等到今天,今天是我第一次和OC的亲密接触,此刻心情有点小激动噻!^_^。

  我对于java有过一段时间的接触,但是对C语言就没有那么熟悉了。哎,不达标么!所以近期恶补了一下C语言的知识,以便学习OC起来没有那么吃力。

  嘿嘿!进入正题!

  1.什么是OC

   1>.OC就是在C语言的基础上,增加了一层最小的面向对象语言,也就是说java一样,也是面向对象滴!

   2>.OC是完全兼容C语言的,可以在OC里面混入C语言代码和C++代码,OC程序完全兼容c语言程序,后缀名为.m   如果想要兼容C++程序,后缀名为.mm。这就不同于C语言的后缀名.C。

   3>.OC语言是可以使用在iOS平台的应用程序和Mac OS X平台。

介绍完了OC是什么,然后接下来要说说OC的基本语法。

  2.OC语法简介

   1>.OC的关键字基本上都是以@开头的,为什么呢?因为OC本身是兼容C语言的,为了和C语言的关键字区别开来,所以在前面加上@。

    比如我们常见的关键字:在C语言中为:public,private,protected。那么在OC中表示为@public,@private,@protected。

    当然也有一些不是以@开头的,比如:self,super,id,_cmd,_block,_strong,_weak这些不是以@开头的。

   2>.接下来说说,OC的字符串。字符串是以@开头的。比如:@"Hello,world!".在C语言中我们直接用"Hello,world!"

    OC中的屏幕输出使用的是 NSLog();

       比如:

1 #import <Foundation/Foundation.h>
2 
3 int main(int argc, const char * argv[]) {
4     @autoreleasepool {
5     //屏幕输出 Hello, World!
6         NSLog(@"Hello, World!");
7     }
8     return 0;
9 }

    在C语言中屏幕输出的话,我们使用printf();同样输出Hello,world!

    如下:

1 #include "stdio.h"
2 int main()
3 {
4     printf("Hello,world!\n");
5     printf("我的第一个OC程序!完全兼容C语言哦!^_^\n");
6     return 0;
7 }

运行结果如下图:

技术分享

   NSLog();的输出会自动换行,并且在使用NSLog();方法的时候@与""直接不能有空格。必须NSLog(@"xxxxx");

    3>.仔细看上面代码的话我们会发现两个引入文件的方式不同,OC中用#import <Foundation/Foundation.h>,C语言中使用的是#include "stdio.h"。使用NSLog();需要#import <Foundation/Foundation.h>,使用printf();需要#include "stdio.h"。

    那么import到底有什么用途呢?

    (1).它和include一样,是拷贝文件的内容。

    (2).可以自动防止文件内容被重复拷贝。也就是在头文件里面不需要加入预处理指令。如下:

1 #ifndef _STDIO_H
2 #define _STDIO_H
3 #endif

 

    4>.说完屏幕输出,下来我要说一下OC中的布尔类型。在C语言中我们使用的bool类型,用true/false来表示,0为false,非0位true。 在OC中布尔类型:BOOL 用YES/NO来表示。

    BOOL类型的本质是:

    typedef signed char BOOL;

    #define YES (BOOL) 1

    #define NO (BOOL) 0

    BOOL的输出:NSLog(@"%d,%d",YES,NO); 当作整数来使用。

    示例代码如下:

 1 #import<Foundation/Foundation.h>
 2 int main()
 3 {
 4     BOOL  b = YES;
 5     BOOL  f = NO;
 6     BOOL  t = 1;
 7     BOOL  f1 = 0;
 8     NSLog(@"\nb是%d,f是%d",b,f);
 9     return 0;
10 }

    运行如下:技术分享

 

    5>.OC中注释、循环语句、条件语句和C语言是一致的。

    6>.比较重要的一个,nil,相当于C语言中的NULL,也就是0。这个是和C语言有区别的。

  3.接下来说说OC程序的开发过程。

    OC程序的开发过程和C语言类似,都是经过编译、链接之后生产可执行文件。

    在终端执行,以文件01-第一个oc程序.m为例子:通过cc -c 01-第一个oc程序.m,编译生产01-第一个oc程序.o文件,通过 cc 01-第一个oc程序.o 链接 生成 a.out文件,通过 ./a.out 运行程序。

  代码如下:

1 #include "stdio.h"
2 int main()
3 {
4     printf("Hello,world!\n");
5     printf("我的第一个OC程序!完全兼容C语言哦!^_^\n");
6     return 0;
7 }

    在终端执行,以文件02-第二个oc程序.m为例子:通过cc -c 02-第二个oc程序.m,编译生产02-第二个oc程序.o文件,通过 cc 02-第二个oc程序.o -framework Foundation链接 生成 a.out文件,通过 ./a.out 运行程序。

代码如下:

1 #import <Foundation/Foundation.h>
2 int main()
3 {
4     NSLog(@"这是我的第二个OC程序^_^");
5 }

 终端如下图:

技术分享

  4jie

  5.接下来说说框架Foundation的作用

    Foundation框架是在开发OC,iOS,Mac程序所要必备的框架。里面包含了很多的常用API。

    框架中包含了很多的头文件,如果想使用整个框架的内容,包含它的主头文件就可以。顺便说一下,每个主头文件的名称和框架名称一模一样。例如:#import <Foundation/Foundation.h>。

  好了,目前的比较就先写到这里,我觉得学习OC通过和C语言的对比来学习,这样子学习起来会容易一点,所以我就是这么做的。

  今天是美好的一天。o(^_-)O

 

    

黑马程序员--01.Object-C--第一次亲密接触

标签:

原文地址:http://www.cnblogs.com/741162830qq/p/4377713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!