oc基礎(chǔ)知識(shí)回顧
1.import的作用
#import < > 包含系統(tǒng)庫(kù)的頭文件
#import " " 包含自定義的頭文件
#include和#import區(qū)別
當(dāng)我們?cè)诖a中使用兩次#include的時(shí)候會(huì)報(bào)錯(cuò):因?yàn)?include相當(dāng)于拷貝頭文件中的聲明內(nèi)容,所以會(huì)報(bào)重復(fù)定義的錯(cuò)誤
但是使用兩次#import的話拐云,不會(huì)報(bào)錯(cuò)枝嘶,所以他可以解決重復(fù)導(dǎo)入的問題乏冀,他會(huì)做一次判斷,如果已經(jīng)導(dǎo)入一次就不導(dǎo)入了
2.OC中的數(shù)據(jù)類型
1.基本數(shù)據(jù)類型:int float char double,BOOL等
2.對(duì)象類型:NSString梢薪、NSArray逊彭、NSDictionary、NSSet匪燕、NSObject等
//NSObject 時(shí)所有類的父類
3、id類型喧笔,可以是任意類型的對(duì)象類型
在oc中所有的類必須有父類
3.NSArray和NSMutableArray不同
NSArray 不可變數(shù)組帽驯,指的是某一個(gè)數(shù)組中的元素順序、個(gè)數(shù),聲明的變量的指針是可以改變的(重新賦值)
NSMutableArray 變量书闸,變量的指針和數(shù)組中的內(nèi)容都是可以改變的
OC中編譯階段能否調(diào)用某一個(gè)方法只看指針類型尼变,是否可以真正執(zhí)行某一個(gè)方法,在運(yùn)行時(shí)決定浆劲,只看對(duì)象或?qū)ο蟮母割愔袝駥?shí)現(xiàn)方法嫌术,如果有就能成功運(yùn)行,沒有就會(huì)失敗
4.static 作用
使用static 的變量在這個(gè)程序運(yùn)行期間都會(huì)被保留牌借,使用static 修飾變量度气,變量的值會(huì)在函數(shù)運(yùn)行結(jié)束以后,一直被保留膨报,直到程序退出磷籍,聲明和賦值 static int a = 0 這行代碼只會(huì)被執(zhí)行一遍
5.結(jié)構(gòu)體
定義結(jié)構(gòu)體:struct 結(jié)構(gòu)體名{成員數(shù)據(jù)類型1 成員名1;成員2數(shù)據(jù)類型 成員名2;...}
struct Person{
char * name;
int age;
};
// 聲明一個(gè)--結(jié)構(gòu)體變量--- 及初始化
struct Person p = {"name",15};
//訪問結(jié)構(gòu)體成員
p.name = "范冰冰";
p.age = 35;
NSLog(@"name = %s, age = %d",p.name,p.age);
//---結(jié)構(gòu)體指針----的聲明和賦值
struct Person *p1 = &p;
p1->name = "劉亦菲";
p1->age = 18;
---常用方式--------
//定義結(jié)構(gòu)體的同時(shí)取別名為Student1,實(shí)際上是用Student1 代替 struct Student
typedef struct Student{
char* name;
int age;
char * subject;
}Student1;
//聲明該結(jié)構(gòu)體類型的變量
Student1 s2 = {"小麗",10,"語文"};
6.枚舉
枚舉:是將有規(guī)律并且取值有限種的幾個(gè)值整合到一起适荣,定義為一種數(shù)據(jù)類型
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;