------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.源文件对比
1)c语言中的文件后缀为 .c .o .out .h
2)oc语言中常用的为 .h 头文件,头文件包换方法,属性声明。
.m oc源文件,类的实现文件,参与编译的文件,用来实现类中声明的方法。
2.基本语法对比
1)数据类型对比
c中常见的数据类型
基本数据类型-整型-短整型short
-整型int
-长整型long
-字符型char
-实型 -单精度型float
-双精度型double
构造类型 -数组
-结构体struct
-公用型union
-枚举类型enum
指针类型
空类型 void
定义类型 typedef
oc中的数据类型
基本数据类型-数值型-整型类型
-浮点型
-字符型 char
-布尔型 BOOL(字面常量值是YES或则NO)
-空类型 void
Block类型(代码块数据类型)
指针数据类型-类 class
-id类型(万能指针)
特殊类型 SEL(选择器数据类型)/nil(空)
3.变量定义对比
注意:1 c语言的关键字都可以在oc源程序中使用。
2 oc新增的关键字在使用时,注意部分关键字以“@”开头。
4.流程控制语句
oc中并没有增加新的流程控制。
oc中提供了一种增强型的for循环。
例: NSArray *arr=@[@"one",@"two",@"three"];
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)sum:(int)x andY:(int) y;
方法定义:
-(int)sum:(int)x andY:(int) y{
return x+y;
}
6.oc新增数据类型介绍
1)逻辑型
(1)Boolean
Boolean类型指的是用于存储真值和假值的变量,一般用于程序流程控制。
Boolean类型数据允许取值true或false,也可以是0或非0的整数代替true和false。
例:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//Boolean类型的使用
//true 真 1
Boolean flag = true;
//false 假 0
flag = false;
printf("flag = %d\n",flag);
//用Boolean类型的变量经常用于条件判断
if (flag) {
printf("XXXXXX\n");
}
}
return 0;
}
2)BOOL
存放逻辑值的另外一种方法,他的取值 YES 真 1 和NO 假 0.
例:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
BOOL flag2=YES;
printf("flag2 = %d\n",flag2);
if(flag2 == YES){
printf("00000000\n");
}
}
return 0;
}
7.oc中新增的异常捕捉的方法
异常:程序运行的时候有BUG。
捕捉机制:排除错误。
@try {
}@catch{
}@finally{
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
int a = 1;
int b = NO;
//注意:try catch 并不能检测所有的结果
@try {
//此处放的是有可能出错的代码
int result = a/b;
}
@catch (NSException *exception) {
//此处放的是出错以后我们处理的代码
}
@finally {
//不管是否出错,这里的代码都会执行
printf("ceshi");
}
}
return 0;
}