- Foundation.h

(1)我们称之为主头文件, 主头文件中又拷贝了该工具箱中所有工具的头文件, 我们只需要导入主头文件就可以使用该工具箱中所有的工具, 避免了每次使用都要导入一个对应的头文件

(2)工具箱的地址: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks

(3)规律: 所有的主头文件的名称都和工具箱的名称一致

所有的主头文件都是导入了该工具箱中所有工具的头文件

- import与include

(1)import的功能和include一样, 是将右边的文件拷贝到当前import的位置

为了降低程序员的负担, 防止重复导入, 避免程序员去书写头文件卫士, OC给出来一个新的预处理指令import

(2)import优点: 会自动防止重复拷贝

(3)因为OC完全兼容C, 所以可以在OC程序中编写C语言代码

并且可以将C语言的源文件和OC的源文件组合在一起生成可执行文件

- printf和NSLog的区别

(1)NSLog会自动换行

(2)NSLog在输出内容时会附加一些系统信息

(3)NSLog和printf接收的参数不一样

- 函数与方法

C语言函数:

void about(); //声明void about()  //实现{printf("model = cpu = size = color");}

OC方法:

- (void)about;           //声明@implementation IPhone   //实现- (void)about{NSLog(@"打印本机信息");}@end

(1)C语言中函数分为声明和实现

OC中定义一个类也分为声明和实现, 也就是说以后我们在OC中定义类, 就是在写类的声明和实现

(2)OC中的行为和C语言中的函数一样, 都是用来保存一段特定功能的代码

C语言中定义一个函数, 分为声明和实现, 声明写在.h中, 实现写在.c中

OC中定义一个方法, 也分为声明和实现, 声明写在@interface中, 实现写在@implementation

(3)C语言的函数分为两种: 内部函数和外部函数

OC中的方法也分为两种; 类方法和对象方法

(4)类方法只能用类名调用, 对象方法只能用对象调用

OC中的类方法用+表示, OC中的对象方法用-表示

(5)编写C语言函数的规律: 1.确定函数名称 2.确定形参 3.确定返回值 4.确定返回值类型

编写OC方法也有规律, 规律和C语言一模一样

(6)注意: OC中的方法, 如果没有形参不需要写(), 而是直接写一个;

为什么OC中没有形参不需要写()呢?

因为OC方法中的()有特殊的用途, OC方法中的()是用来扩住数据类型的

(7)方法和函数的声明

C语言函数:

       int signal(int number);

OC语言方法:

       - (int)signal:(int)number;

注意: OC中的方法如果有参数, 那么每个参数的数据类型前面必须加上一个:

注意: 当前这个有参数的方法它的方法名称是  signal:

冒号也是方法名称的一部分

有返回值并且有多个参数的:

C语言函数:

       int sendMessage(int number, char *content);

OC语言方法:

       (int)sendMessage:(int)number :(char *)content;

注意: 上面这个方法的方法名称是sendMessage::

(8)1 函数属于整个文件, 方法属于某一个类

方法如果离开类就不行

2 函数可以直接调用, 方法必须用对象或者类来调用

注意: 虽然函数属于整个文件, 但是如果把函数写在类的声明中会不识别

3 不能把函数当做方法来调用, 也不能把方法当做函数来调用

(9)方法的注意点:

1 方法可以没有声明只有实现

2 方法可以只有声明没有实现, 编译不会报错, 但是运行会报错

3 如果方法只有声明没有实现, 那么运行时会报:

reason: '+[Person demo]: unrecognized selector sent to class 0x100001140'

//发送了一个不能识别的消息, 在Person类中没有+开头的demo方法

reason: '-[Person test]: unrecognized selector sent to instance 0x100400000'

OC与C语言的一些区别相关推荐

  1. c与python的区别-Python与C语言有什么区别?

    答题练手.手机排版不佳请谅解~ 更新2:还是关于编译和解释 二者的本质区别是在编译/解释器的总体工作方式上的,编译器是off-line,解释器是on-line.编译器把整个程序读进来,进行一系列变大变 ...

  2. php和python区别-PHP与Python语言有哪些区别之处?选择哪一个好?

    其实针对不同阶段的学者来说,他们的需求自然也有所不同.本篇文章主要分析了php和python哪个好以及介绍PHP与Python的区别之处,希望对还在为学习PHP和Python中哪一个语言而摇摆不定的朋 ...

  3. python和c语言有什么关系-Python与C语言有什么区别?

    答题练手.手机排版不佳请谅解~ 更新2:还是关于编译和解释 二者的本质区别是在编译/解释器的总体工作方式上的,编译器是off-line,解释器是on-line.编译器把整个程序读进来,进行一系列变大变 ...

  4. python是c语言写的吗-Python与C语言有什么区别?

    答题练手.手机排版不佳请谅解~ 更新2:还是关于编译和解释 二者的本质区别是在编译/解释器的总体工作方式上的,编译器是off-line,解释器是on-line.编译器把整个程序读进来,进行一系列变大变 ...

  5. oc c语言,OC之C语言的基础知识

    OC 之 C语言基础 for循环 实现三角形 1.[文件] Person.h ~ 363B     下载(3) // // Person.h // Hello // // Created by DGS ...

  6. 数据操作语言DML及数据定义语言DDL的区别

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 数据操作 ...

  7. c++和java哪个好学_【技术科普】C语言和java语言有些什么区别?

    C语言和java语言有些什么区别? 可以打个比方吧: C语言就像一个初创公司的老板,由于人少经费少,从技术.财务.市场等都需要自己管,经常把自己累的跟狗一样: Java语言就像一个上市大公司的老板,人 ...

  8. C#与C++在语言层面的区别(不断补充)

    C# [StructLayout(LayoutKind.Sequential)] 是什么意思?? 结构体是由若干成员组成的.布局有两种 1.Sequential,顺序布局,比如 struct S1 { ...

  9. python和c 的区别-Python与C语言有什么区别?

    答题练手.手机排版不佳请谅解~ 更新2:还是关于编译和解释 二者的本质区别是在编译/解释器的总体工作方式上的,编译器是off-line,解释器是on-line.编译器把整个程序读进来,进行一系列变大变 ...

最新文章

  1. [gic]-ARM gicv3/gicv4的详细介绍-2020/08
  2. 子屏幕selection-screen
  3. JEESZ-SSO解决方案
  4. 在阿里、腾讯、美团工作有什么区别?
  5. python自动化测试脚本可以测php吗_自动化测试,用Python还是Java?
  6. 【.NET 遇上 GraphQL】使用 Hot Chocolate 构建 GraphQL 服务
  7. 测试Spring的“会话”范围
  8. 数据行业工作3年,我靠这7个能力,成为领导青睐的高级数据分析师
  9. 中国最闷声发大财的城市,人均GDP超杭州
  10. [bz][LINUX command 002] 嵌入式常用的命令
  11. 静态页面编写规范02
  12. visio的一些用法
  13. 卡诺模型案例分析_需求分析神器 | 如何用卡诺模型分析需求
  14. 易语言和c语言语法哪个接近点,易语言如果真、如果和判断知识点总结
  15. 增强学习系列之(二):实现一个简单的增强学习的例子
  16. 广东开放大学成本会计
  17. iOS越狱程序开发框架
  18. Android自动化的一般方法
  19. elementui 合并单元格
  20. 场内指数基金(ETF)有哪些(附完整名单)

热门文章

  1. squid代理服务器应用及它的几种代理模式
  2. Java上路09-多线程
  3. python0为真还是假_python 中对象真和假的概念是什么
  4. mysql乐观锁 秒杀_使用数据库乐观锁解决高并发秒杀问题,以及如何模拟高并发的场景,CyclicBarrier和CountDownLatch类的用法...
  5. 代码已开源,一起魔改大西瓜!
  6. AutoSar DaVinci Developer工具的基本介绍
  7. mysql if 多个,mysql if条件中的多个条件
  8. Android Percent Layout 安卓百分比布局
  9. python geometry用法_Arcgis python geometry
  10. 远程办公常态化,网络安全迫在眉睫,“零信任安全”的风口到了吗?