黑马程序员——OC与C语言的差异学习
来源:互联网 发布:淘宝索尼丽驰专卖店 编辑:程序博客网 时间:2024/05/29 21:18
------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------
差异性(一)
1、源文件对比
C语言中常见的文件:.c源文件 .o目标文件 .out可执行文件 .h头文件
OC中常见的文件有两种:
.m源文件:类的实现文件,参与编译的文件,用来实现类中声明的方法)
.h头文件:包含方法、属性的声明
2、基本语法对比
1)数据类型对比
对比多出来的部分:
BOOL:字面常量值是YES或者NO
NSObject *:OC中的对象类型
id:动态对象类型,万能指针
SEL:选择器数据类型
block:代码块数据类型
2)变量的定义对比
注意:(1)C语言的关键字都可以在OC源程序中使用
(2)OC新增的关键字在使用时,注意部分关键字以"@"开头
3)流程控制语句对比
C语言中:(1)if else (2)switch (3)while (4)do while (5)for
OC中新增:增强型for循环,可以快速遍历数组、字典等集合
NSArray *arr=@[@"one",@"two",@"three"]; for(NSString *str in arr){ NSLog(@"%@",str); }
4)函数(方法)定义和声明对比
C语言中函数的声明和实现
(1)函数声明:
int sum(int a,int b);
(2)函数定义:
int sum(int a,int b){ return a+b;}OC语言中函数习惯称之为“方法”
(1)方法声明:
-(int)sum:(int) a and:(int) b;
(2)方法定义:
-(int)sum:(int) a and:(int )b{ return a+b; }
差异性(二)
1、OC新增的数据类型介绍
逻辑类:
(1)Boolean
Boolean 类型指的是用于存储真值和假值的变量,一般用于程序流程控制 。
Boolean 类型数据允许取值 true 或 false ,也可以是0或非0的整数替代 true 和 false
Boolean flag = true;if(flag){ NSLog(@"真 %d",flag);}else{ NSLog(@"假 %d",flag);}(2)BOOL
存放逻辑值的另一种方法,取值为YES或者NO
BOOL flag2 = YES;if(flag2){ NSLog(@"真 %d",flag);}else{ NSLog(@"假 %d",flag);}
2、OC中的新增异常捕捉方法
@try...@catch...@finally
格式:
@try { //如果有异常 1/0 < #statements#> ......} @catch (NSException *exception) { //捕捉最具体的异常类型 < #handler#>} @catch (NSException *ne) { //捕获一个比较重要的异常类型。 } @catch (id ue) { //再次掷出捕获的异常。} @finally { //不管有没有异常finally内的代码都会执行。 < #statements#> NSLog(@"@",exception);//增加这句可以打印错误原因}这是OC中的异常捕捉机制,代码有可能抛出的异常是封闭在一个@ try块。 @catch()块包含为@ try块抛出的异常处理逻辑。一个@ finally块包含代码必须执行是否引发异常与否。可以通过使用@throw指令抛出一个异常,这基本上是一个对Objective – C对象的指针。然后使用NSException对象的指针打印出相关的错误原因。
0 0
- 黑马程序员——OC与C语言的差异学习
- 黑马程序员-C语言与OC的差异
- 黑马程序员---OC基础---OC与C的差异
- 黑马程序员——oc和c的差异
- 黑马程序员------C和OC的差异
- 黑马程序员--oc和c的差异
- 黑马程序员---OC基础---OC简介、OC与C的差异、类和对象与方法
- 黑马程序员——OC语言基础——与C的差异性
- 黑马程序员----oc与c语言要注意的地方
- 黑马程序员——C/OC—OC对比C语言的差异化
- 黑马程序员——C语言和OC内存管理
- 黑马程序员——c语言学习---变量与存储
- 黑马程序员—OC语言基础—类与对象
- 黑马程序员——c语言学习—内存的分配与管理
- 黑马程序员——c语言学习---指针的探讨
- 黑马程序员之ios学习总结——10 OC语言的构造方法和分类
- 黑马程序员之ios学习总结——11 OC语言的内存管理1
- 黑马程序员之ios学习总结——12 OC语言的内存管理2
- 黑马程序员--JAVA基础语法之--关键字、常亮、变量、标识符
- 8.12学习总结
- 进程与线程、应用程序域关系
- WebView的高级用法
- ios关于frame等知识点的总结一
- 黑马程序员——OC与C语言的差异学习
- POJ 3784 二叉堆
- 在浏览器敲入一个网址
- 询问区间第k大(小)——主席树
- [GDOI模拟2015.08.08]排列
- 我的感想5
- C#网页爬虫抓取行政区划
- NZND壳-加密算法改良
- 【Unity基础知识之四】Unity、Mono为何能跨平台?聊聊CIL(MSIL)