OC学习笔记之OC初见面


一、小桥对OC仅有的了解     

     众所周知贝尔实验发明了C语言,作为一种接近底层的语言,大大方便了程序的设计。而C语言是面向过程的,基本给了它一个定位!而面向对象作为对现实世界的抽象,易理解,易编写,极大地方便编程解决现实问题,于是产生了后来的许多高级语言,Java,C++。OC作为C的面向对象的补充,也是这样产生的。可以说,C++和OC是对C面向对象拓展的两个流派,是两种不同的思维模式。

       OC是在乔帮主推出革命性产品Iphone4流行起来的,一度超过了C++的排名,仅次于C和Java!
二、Hello world! 
    学习一种语言我们总是从输出Hello world!两个单词开始,这似乎成为了一种固定习惯,小桥在学习李明杰老师的OC课程的时候第一个程序也是输出它们。
   为方便起见,在写本文的时候小桥在终端下建立文件,编译,链接,运行等操作换在了集成环境Xcode中,由于Mac系统为Lion 10.7.5所以用的是4.6.3。 
  打开Xcode新建一个projetc ,名字为 第一个OC程序 ,再选择控制台程序(windos下是这么叫的)。在Xcode中就会看到一个main.m文件,小桥知道C的源文件拓展名为.c,C++的为.cpp,这里通过李明杰老师的讲解,小桥明白OC的代码源文件拓展名为.m,所以main.m就是OC的源文件了。打开它,就能看到Xcode自动添加的代码,如下

//
//  main.m
//  2
//
//  Created by 葬花 桥 on 14-4-22.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

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

    @autoreleasepool {
        
        NSLog(@"Hello, World!");
        
    }
    return 0;
}

小桥不知道OC中的autoreleasepool是什么,所以我删掉写了自己的代码:

//
//  main.m
//  第一个OC程序
//
//  Created by 葬花 桥 on 14-4-22.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main()
{
 
    NSLog(@"Hello, World!");
        
    return 0;
}


  Run一下,在输出中看到了熟悉的 Hello,World!激动ing。


这里小桥就所学的知识讲解下代码,毫无疑问上面的是注释,#import与C中的#include类似,拷贝别处的代码过来,但是它多了一个功能。学过C或C++的都知道在多文件联合编译的项目中,为了防止头文件中的函数声明或者类声明被多次包含,头文件中总是加入预处理指令
#ifnde XXX_H

//

#define XXX_H
类声明或函数声明代码;
#endif
而OC中的#import 不仅有#include的功能,还能自动防止多次包含文件,所以OC中包含头文件,在头文件中不用加入上面的指令。
  main函数是程序入口,与C和C++一样不多说,再来说下NSLog函数。在C中输出主要用到的是库函printf,C++中用的是cout,没错,OC中用的是NSLog,与C不一样的是,OC语法中的字符串前面要加上@符号,更人性化的是NSLog函数会输出调试日志信息,在输出完字符串后还会自动回车换行,而不用像C中那样加入回车换行符\n!


三、OC与C的兼容性
   OC完全兼容C代码,也就是说在.m源中可以写C的代码而编译完全没有问题。小桥对老师说的也试验了下,把上面的代码修改为如下:
 

//  main.m
//  第一个OC程序
//
//  Created by 葬花 桥 on 14-4-22.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#include <stdio.h>

int main()
{
 
        //NSLog(@"Hello, World!");
    printf("Hello,World!");
        
    return 0;
}



  Hello,World!仍然可以正常输出,只是少了日志信息。OC中,main函数也可以直接调用用C写的函数。小桥在第一个OC程序文件夹下新加两个文件,love.h和love.c,内容分别为:

//
//  love.h
//  第一个OC程序
//
//  Created by 葬花 桥 on 14-4-22.
//  Copyright (c) 2014年 itcast. All rights reserved.
//
void love();

//
//  love.c
//  第一个OC程序
//
//  Created by 葬花 桥 on 14-4-22.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#include <stdio.h>
void love()
{
    printf("I love you OC!");
}  


 main.m中修改代码为:

//
//  main.m
//  第一个OC程序
//
//  Created by 葬花 桥 on 14-4-22.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "love.h"
int main()
{
       love();
    
    return 0;
}

     Run下,程序输出了I love you OC!以上就是小桥对老师说OC完全兼容C做的验证!


好了,和OC的初次见面就写到这里! 




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值