oc基础知识回顾
1.import的作用
#import < > 包含系统库的头文件
#import " " 包含自定义的头文件
#include和#import区别
当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误
但是使用两次#import的话,不会报错,所以他可以解决重复导入的问题,他会做一次判断,如果已经导入一次就不导入了
2.OC中的数据类型
1.基本数据类型:int float char double,BOOL等
2.对象类型:NSString、NSArray、NSDictionary、NSSet、NSObject等
//NSObject 时所有类的父类
3、id类型,可以是任意类型的对象类型
在oc中所有的类必须有父类
3.NSArray和NSMutableArray不同
NSArray 不可变数组,指的是某一个数组中的元素顺序、个数,声明的变量的指针是可以改变的(重新赋值)
NSMutableArray 变量,变量的指针和数组中的内容都是可以改变的
OC中编译阶段能否调用某一个方法只看指针类型,是否可以真正执行某一个方法,在运行时决定,只看对象或对象的父类中书否实现方法,如果有就能成功运行,没有就会失败
4.static 作用
使用static 的变量在这个程序运行期间都会被保留,使用static 修饰变量,变量的值会在函数运行结束以后,一直被保留,直到程序退出,声明和赋值 static int a = 0 这行代码只会被执行一遍
5.结构体
定义结构体:struct 结构体名{成员数据类型1 成员名1;成员2数据类型 成员名2;...}
struct Person{
char * name;
int age;
};
// 声明一个--结构体变量--- 及初始化
struct Person p = {"name",15};
//访问结构体成员
p.name = "范冰冰";
p.age = 35;
NSLog(@"name = %s, age = %d",p.name,p.age);
//---结构体指针----的声明和赋值
struct Person *p1 = &p;
p1->name = "刘亦菲";
p1->age = 18;
---常用方式--------
//定义结构体的同时取别名为Student1,实际上是用Student1 代替 struct Student
typedef struct Student{
char* name;
int age;
char * subject;
}Student1;
//声明该结构体类型的变量
Student1 s2 = {"小丽",10,"语文"};
6.枚举
枚举:是将有规律并且取值有限种的几个值整合到一起,定义为一种数据类型
enum Direction{
Top = 1,
Left,
Bottom,
Right
};
//定义枚举变量
enum Direction ddd = Left;
---常用方式--------
//给枚举类型取别名 MyDirection 代替 enum Direction 常用
typedef enum Direction MyDirection;
MyDirection ccc = Bottom;
typedef enum EnumName{
baicai = 0,
doufu,
htc,
apple
}NewName;
//声明枚举变量
NewName cai1 = apple;
网友评论