oc学习笔记(一)
文章目录
oc与c语言的区别
c语言是面向过程语言,oc则是面向对象是语言,这两者之间究竟有什么区别呢?
面向过程的语言:主要是用于单片机,嵌入式的开发,因为这些编程需要实例化,对内存等资源开销较大,性能是其判断优劣最重要的因素,其缺点就是:相对于面向对象语言来说,较难维护,且不易扩用和扩展
面向对象的语言:易于维护,复用和扩展,由于面向对象语言所用的三个特点,分装,继承和多态,会比较容易写出低耦合,高复用的程序,使得系统更加灵活,易于维护。当然与面向过程的语言比起来,性能会较低。
举个例子吧,如果说面向过程是一份蛋炒饭的话,那么面向对象则更像一份盖浇饭,怎么理解呢?
对于蛋炒饭来说,饭中的每一种配料——即为功能,都非常均匀的融合在了一起,他的突出特点就是香——即性能一般来说高于盖浇饭,但是如果不想要蛋炒饭的某种东西,比如香菜,那么你只能将整份饭重做一遍。
对于盖浇饭来说呢,就是将浇盖的内容和饭分别准备好,如果你不喜欢吃香菜,那我们只需要做一份去掉香菜的盖浇内容,饭和菜之间的耦合度很低,相对的可维护性就较好,对于盖浇饭能够任意的根据需求组合出任意的搭配。
oc相对于c语言:
- 在c语言的基础上增加了部分面向对象的语法
- 将c语言较为复杂的封装语法简化
- oc完全兼容c语言
- main函数仍为函数的主入口
**oc程序的后缀:**oc文件的后缀名为.m,m代表oc中的一个重要机制message机制
#import的用法
作为oc中特有的预处理指令,它其实就是#include的升级版:
- 无论如何我们#import一个文件多少次,只会包含一次,即我们不用像在c语言中配合条件编译指令,可以无脑#import
- 在#import指令运行过程中,指令本身先会判断这个文件本身是否被引用,若没有被引用则才会被引用
foundation框架
框架:将在一些开发程序的过程中,把事先需要使用的功能写好,把这些功能分装在类或者函数之中。框架即为类与函数的集合,类比为c语言的函数库。
只要#import <Foundation/Foundation.h> ,就可以使用foundation框架的内容
NSLog函数
NSLog函数是增强版的printf函数
NSLog(@"输出的内容");
其优点相对于printf来说有以下几点:
- 会输出打印出执行该行的时间,输出程序的名称,进程编号:线程编号,双引号的内容
- NSLog会自动换行
- NSLog函数还是可以使用与printf相同的占位符
注:NSLog函数的第一个参数为oc字符串,实参的第一个必须以@开头
NSString类型
oc设计了一个更适合存储字符串的类型,专门用来存储oc字符串的地址。
"String"是c语言的字符串,@"string"是一个oc的字符串,其区别就在与字符串前的@
所以NSString就是只能用于存储oc字符串的地址
NSString *s = @"string"
如果在NSLog函数中想打印出NSString类型的字符串,占位符为%@
@符号的作用
- 将c字符串转化为oc字符串
- oc的关键字大多数以@开头
oc中的数据类型
支持c语言中的数据类型
- 基本数据类型:int char ……
- 结构类型:结构体
- 指针类型:int*
- 空类型:void
oc特有的数据类型bool
- 可以存储YES或NO的值
- 一般用于存储条件表达式子的结果
- 本质为有符号的char变量,YES为1,NO为0
boolean
- 本质与bool类型相同,但是一个无符号的char类型

本文详细介绍了OC(Objective-C)与C语言的区别,包括面向对象的特点、类与对象的概念、创建和使用对象、import的用法、Foundation框架、NSLog函数、NSString类型、id类型以及单例模式的实现。
最低0.47元/天 解锁文章
2





