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对比的更多相关文章

  1. 嵌入式&iOS:回调函数(C)与block(OC)回调对比

    学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...

  2. 02:OC和C对比

    1.源文件对比 C语言中常见源文件.h头文件,.c文件 文件扩展名 源类型 .h 头文件,用于存放函数声明 .c C语言源文件,用于实现头文件中声明的方法 OC中的源文件.h头文件,.m与.mm的实现 ...

  3. Objective-C 再谈OC指针,对比C++/Java/Swift

    1.Objective-C的指针 OC一直是人感觉比较变态的一门语言,为什么呢?因为它的每个变量都是指针型,多的都几乎让人忘了那个*的存在了. 比如我定义了一个Student的Class,new了st ...

  4. C,OC,C++语言对比

    1.C与OC.C++的区别: C语言的特点:面向过程 1)C语言是结构化语言,层次清晰,调试和维护比较容易 2)表现能力和处理能力比较强,可直接访问内存的物理地址 3)c语言实现对硬件的编辑,c语言课 ...

  5. OC基础笔记目录

    OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...

  6. OC基础(1)

    Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 *:first-child { margin-top: 0 !important; } body > *:last-chi ...

  7. 苹果版App开发心得

    这几个月中做的工作包括网站开发.安卓App开发和苹果App开发,前两者用的语言都是我熟悉的java,故苹果知识的学习,较安卓知识的学习,多出「语言基础」一块,其他方面差不多. 之前发过安卓那篇,如感兴 ...

  8. 从C#到Objective-C,循序渐进学习苹果开发(2)--Objective-C和C#的差异

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台开发苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验. 在上篇<从C#到 ...

  9. objective-c系列-NSArray

    OC数组NSArray 对比         c数组              和       oc数组对象(指针) 定义         int array[10];              NS ...

随机推荐

  1. linux 部署.net core 环境

    Linux版本Ubuntu 16.04 .net core 下载地址:https://dotnet.microsoft.com/download/dotnet-core/2.1 虽然现在现在.net ...

  2. mongdb集群

    一.mongodb的集群 mongodb有两种架构: 第一种架构:和mysql的结构类似,也有主从结构,但是他不能实现故障自动切换 于是有了第二种架构.官方不推荐使用这种架构. 第二种:mongodb ...

  3. HTTP 状态码整理

  4. Selenium_POM架构(17)

    POM是Page Object Model的简称,它是一种设计思想,意思是,把每一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为. POM一般使用三层架构,分别为:基础封装 ...

  5. 关于APP设计规范和一些图层命名

    首先,本人大学计算机专业出身,学过编程,工作的时候做过 产品经理,设计师,前端工程师,对工作的流程都有一些见解. 现在主攻前端工程师,做Web APP.今天收到设计师的设计稿,一看图层分类,这让我感觉 ...

  6. Linux中的一些基本命令

    文章目录 ls cd Linux的目录 文件的权限 1.用户,组,权限 2.文件的权限 文件的基本操作 增:创建文件 删:删除文件 改:修改文件 查:查看 vi/vim 是一个编辑工具,主要用来编辑文 ...

  7. manjora20不小心卸载,重新安装terminal,软件商店/软件中心linux类似

    问题 重新安装老版本gnome-shell 如果突然死机可能卸载完了terminal和软件商店,但是没有安装新的. 此时没有terminal也没有软件商店 无法安装软件 解决方案 terminal c ...

  8. .NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记

    目录 项目核心内容 实战目标 RGCA 四步架构法 项目核心内容 无代码埋点实现对所有 API Action 访问控制管理 对 EF Core 实体新增.删除.字段级读写控制管理 与 Identity ...

  9. c#重写和多态

    多态是基于重写的 继承:向子类中添加父类没有的成员,子类对父类的横向扩展 重写:纵向扩展,成员没有增加,但成员的版本增加了 引言 Rider JetBrains:Rider.ReSharper.dot ...

  10. C++模板之成员模板和模板构造函数

    namespace myspace6 { template<typename T1> class TC { public: template<typename T2> TC(T ...