OC和C对比
1.源文件对比
- C语言中常见源文件.h头文件,.c文件
文件扩展名 | 源类型 |
---|---|
.h | 头文件,用于存放函数声明 |
.c | C语言源文件,用于实现头文件中声明的方法 |
- OC中的源文件.h头文件,.m与.mm的实现文件
文件扩展名 | 源类型 |
---|---|
.h | 头文件,头文件包含类、方法、属性的声明。 |
.m/.mm | 类的实现文件,参与编译的文件,用来实现类中声明的方法 |
2.关键字对比
- C语言的关键字都可以在OC源程序中使用
- OC新增的关键字在使用时,注意部分关键字以"@"开头
3.数据类型对比
- C语言数据类型
- OC数据类型
类型 | 描述 |
---|---|
BOOL | 只有两个取值真和假 |
NSObject * | OC中的对象类型 |
id | 动态对象类型,万能指针 |
SEL | 选择器数据类型 |
block | 代码块数据类型 |
- OC中的类
- Objective-C是一种面向对象的语言,定义类是它的基本能力。
- 那什么是类呢?类是用来描述对象的,它是一系列方法和属性的集合
- Objective-C的类声明和实现包括两个部分:接口部分和实现部分。
- 想要定义方法也就C语言中的函数,那么就必须先有类的存在
4.流程控制语句对比
- C语言中使用的流程控制语句OC中都可以应用
if 语句
switch语句
while语句
do while语句
for语句
break关键字
continue关键字
增强for循环,用于快速迭代数组或者集合
C语言for循环
for (int i = 0; i < 10; i++){
printf(“%d”,i);
}
- OC增强for循环
for (NSString *name in NSArray){
NSLog(@”%@”,name);
}
5.函数(方法)定义和声明对比
C语言中函数的声明和实现
- 函数声明:int sum(int a,int b);
- 函数实现:int sum(int a,int b){ return a+b; }
OC中的方法
- 方法声明:- (int)sum:(int) a andB:(int) b;
- 方法实现:- (int)sum:(int) a andB:(int )b{ return a+b; }
注意: 方法只能写在类里面, 而函数可以写在任何地方
- 对象方法,使用对象调用的方法
- 类方法,使用类名调用的方法
对象方法
- (id)initWithString: (NSString *)name;
类方法
+ (MyClass *)createMyClassWithString: (NSString *)name;
6.面相对象特性
- 封装性
- 继承性
- 多态性
7.面向对象新增语法
- 属性生成器
- @property
- @synthesize
//声明属性
@property (nonatomic,strong)NSString *name;
//合成属性
@synthesize name = _name;
- 分类
- 分类与继承
- 使用分类扩展类,无需子类化
@interface NSString (MyNSString)
- (NSString *) encryptWithMD5;
@end
- 协议
- 使用协议声明方法
- 协议类似于C#,java中的接口
@protocol MyProtocol
- (void)myProtocolMethod;
@end
- Fundation框架
- 创建和管理集合,如数组和字典
- 访问存储在应用中的图像和其他资源
- 创建和管理字符串
- 发布和观察通知
- 创建日期和时间对象
- 操控URL流
- 异步执行代码
8.新增异常处理
- 用于处理错误信息
格式:
- @try .... @catch .... @finally
示例
//创建对象car
Car *car = [Car new];
@try {
//调用一个没有实现的方法
[car test];
}@catch (NSException *exception) {
NSLog(@"%@",exception.name);
}@finally {
NSLog(@"继续执行!\n");
}
OC和C对比的更多相关文章
- 嵌入式&iOS:回调函数(C)与block(OC)回调对比
学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...
- 02:OC和C对比
1.源文件对比 C语言中常见源文件.h头文件,.c文件 文件扩展名 源类型 .h 头文件,用于存放函数声明 .c C语言源文件,用于实现头文件中声明的方法 OC中的源文件.h头文件,.m与.mm的实现 ...
- Objective-C 再谈OC指针,对比C++/Java/Swift
1.Objective-C的指针 OC一直是人感觉比较变态的一门语言,为什么呢?因为它的每个变量都是指针型,多的都几乎让人忘了那个*的存在了. 比如我定义了一个Student的Class,new了st ...
- C,OC,C++语言对比
1.C与OC.C++的区别: C语言的特点:面向过程 1)C语言是结构化语言,层次清晰,调试和维护比较容易 2)表现能力和处理能力比较强,可直接访问内存的物理地址 3)c语言实现对硬件的编辑,c语言课 ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- OC基础(1)
Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 *:first-child { margin-top: 0 !important; } body > *:last-chi ...
- 苹果版App开发心得
这几个月中做的工作包括网站开发.安卓App开发和苹果App开发,前两者用的语言都是我熟悉的java,故苹果知识的学习,较安卓知识的学习,多出「语言基础」一块,其他方面差不多. 之前发过安卓那篇,如感兴 ...
- 从C#到Objective-C,循序渐进学习苹果开发(2)--Objective-C和C#的差异
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台开发苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验. 在上篇<从C#到 ...
- objective-c系列-NSArray
OC数组NSArray 对比 c数组 和 oc数组对象(指针) 定义 int array[10]; NS ...
随机推荐
- Window/Linux下Mysql的安装步骤
Windows下Mysql安装教程 首先讲一下Windows环境下安装Mysql,我使用的安装包版本是mysql-8.0.26-winx64 下载地址:MySQL下载 1.点击上面的下载地址得到zip ...
- CobaltStrike简介与安装
CobaltStrike的安装我踩了不少坑,所以我将正确的安装及启动过程跟大家分享一下,以免大家走一些不必要的弯路 Cobaltstrike简介 Cobalt Strike是一款美国Red Team开 ...
- Bootstrap实战 - 响应式布局
一.介绍 响应式布局就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 导航栏与轮播在大部分网站的头部占很高的比重,特别是导航栏,扮演着网站地图的 ...
- IDEA超级好用的插件推荐
IDEA超级好用的插件推荐 以下都是本人使用idea开发以来,所使用过的插件,强烈推荐,提升代码质量,事半功倍之首选!!! 先介绍下如何安装这些插件:(本人使用idea的版本是2020.2.3) 1. ...
- 匿名函数托管 func-spring-boot-starter
匿名函数托管 func-spring-boot-starter 项目地址 func-spring-boot-starter开源项目地址: https://gitee.com/yiur/func-spr ...
- [转载]Win10蓝牙设备删除后无法连接解决办法
转自 https://blog.csdn.net/Tokeyman/article/details/86268005 现象 一般情况下,当操作系统无法与蓝牙设备,比如鼠标键盘等出现无法连接的情况,通过 ...
- [Raspberry Pi] 入门使用
今天开始介绍Raspberry Pi(简称RPi,下同)入门的一些基础知识. 第1部分: 安装RPi 1.1 从 http://www.raspberrypi.org/downloads 下载RPi ...
- 【感受】android + opencv + umat + opencl使用感受
近期编译了android下支持opencl的opencv,使用opencl能力的关键是用cv::UMat替换cv::Mat. 实际使用后发现坑很多,非常不成熟,不推荐使用这种方式来提升实际产品的性能. ...
- virtual stuido同时调试多个控制台
问题 UDP作业需要服务器端和客户端收发信息完成交互,需要同时调试多个窗口. 解决办法 但是缺点依然是无法调试2个,修改另一个测试. 所以多开可能依然是好办法.
- Cesium1.70-介绍CesiumOSM建筑新特性
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 我们很高兴宣布Cesium OSM建筑,一个覆盖整个世界的3D建 ...