标签:
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
ios开发(包括iphone和ipad上的应用)使用的是objective-c这种语言,OC语言诞生于1986年,也是一门较为古老的语言。OC是完全兼容C语言的,也就意味着C语言中所有的语法特性在OC中都是可以使用的,所以很多用C语言开发的库和函数,是可以在OC语言中直接使用的(这也是OC语言中大部分关键字使用@开头的原因,主要是为了在同一文件中区分C和OC代码)。但是OC的基本语法职工又有不同于C语言的部分。本文主要介绍一些C语言开发到OC语言开发转变过程中疑惑的部分:
1.文件的扩展名为什么是.m?
Objective-C刚诞生的时候,扩展名.m代表message,指的是Objective-C的一个主要特性。因为oc是一种不同于c语言(面向过程)的面向对象语言,类或对象的方法都是以消息的形式传递,而不是简单地函数,因此在Objective-C这门语言中处处有传递消息的代码(其实 就是在调用类方法),所以OC源文件以.m为扩展名。
2.基本数据类型中增加了BOOL类型
BOOL类型是一种取值只有真和假的数据类型,在其他语言中非常常见,Objective-C为了弥补C语言中缺乏的bool类型,使用C语言中得typedefine关键字定义了一种新的BOOL类型:
并且定义了两种取值
这样在遇到判断真假的时候,就可以使用BOOL类型,而不需再使用没有实在意义的0和1。
3.nil类型
Objective-C中的nil类型相当于在C语言中的NULL类型,在Xcode中按住command键进入.h头文件可以看到对nil类型的宏定义
由上面的两段定义可知OC中得nil与C语言中得NULL是基本相同的。
但是由于OC是面向对象的语言,nil不仅可以表示基本数据类型和指针类型中的0的含义,而且还可以表示一个没有值的类类型,因此OC中得nil用法更加丰富,所以建议要再OC程序中使用nil,而不再使用C语言中的NULL。
4.#import预处理命令
作用跟#include一样,用来拷贝某个文件的内容,但是为什么不用#include而使用新增的#import。
因为在OC中的#import指令有更加丰富的功能
#import是GCC编译器提供的Xcode在编译Objective-C、C和C++程序时都会使用它,#import可保证头文件只包含一次,而不论此命令实际上在那个文件中出现了多少次。
#import可以自动防止文件内容被拷贝多次,也就以为着头文件中不用像编写C语言程序时加入下面的繁琐的预处理指令了
因此以后再编写oc程序时,可以放心大胆地抛弃#include指令。
5.OC中的关键字和字符串类型
在OC语言大部分关键字都以@开头,其中最常见的关键字有下面几个:
OC语言中的字符串不同于C语言中得字符串,它不是简单的字符数组,而是以@开头的包装类型(类类型)
比如@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串
6..基本输出函数NSLog
Objective-C中有比C语言中更高级的输出函数NSLog主要的区别如下
Ø NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
Ø NSLog输出后会自动换行,printf输出后不会自动换行
Ø 使用NSLog需要#import <Foundation/Foundation.h>
Ø 使用printf需要#include<stdio.h>
7.Foudation框架
在OC语言中,使用的类、结构体、和函数被定义在.h文件中(而实现则放在了.m文件中),一些公司或者个人开发了一些具有特定功能的框架(framework),里面有许多.h和.m文件,而要使用这些框架或者框架中得某些函数、类或结构体必须使用#import关键字引入包含他们的头文件,而以框架名命名的主头文件包含了这个框架中所有的函数、类和结构体的声明(在不知道要具体添加哪个头文件时,通常添加主头文件即可),例如
#import<Foundation/Foundation.h>
意味着要添加Foundation框架下的Foundation.h文件其中框架名和头文件以"/"隔开。
几乎所有的OC程序都要添加Foundation框架,因为
Ø Foundation开发OC、iOS、Mac程序必备的框架
Ø 此框架中包含了很多常用的API(应用编程接口)
8.如何编译和链接OC文件
如同前面的C语言编程,要想让oc程序运行起来,也要三步走,即:编译->链接->执行。但是和C语言稍微有点不同
就是在链接阶段 需要添加OC程序中使用的框架(指明–framework参数),例如:
Ø 编译:cc –cmain.m test.m
Ø 链接:cc main.otest.o –framework Foundation
Ø 运行:./a.out
9.一个完整的OC程序
总结前面所介绍的内容,可以不再对OC程序陌生了,下面是一个完整的OC版的Hello World
打开终端cd到文件所在的目录,然后
编译:
链接:
执行:
终端屏幕上显示:
Hello, World!
标签:
原文地址:http://www.cnblogs.com/qiang0901/p/4466935.html