一、基礎語法
1> OC語言和C語言
2> 關鍵字
3> 字符串
4> BOOl類型
5> #import與#include
6> NSLog與PRintf
NSLog
① NSLog函數包含在Foundation框架中② NSLog函數接收的是OC語言字符串③ NSLog函數默認在結束處輸出換行④ NSLog函數不能以%s格式輸出包含中文的字符串
printf
① printf函數包含在stdio.h文件中② printf函數接收的是C語言字符串③ printf函數需要使用換行符'/n'
NSLog的其他用途
① 通過_LINE_參數輸出改代碼所在的行號② 通過_FILE_參數輸出改代碼所在的文件的文件名③ 通過_func_參數輸出代碼所在的函數的函數名
二、類、對象和方法
1> 類
類與結構體
① 結構體是數據的封裝② 類是數據及與數據相關操作的封裝
類的聲明
① 用@interface和@end組合來聲明一個類,通常繼承與根類NSObject② 指定類名:首字母大寫,使用駝峰標示,不包含數字③ 聲明屬性列表:以下劃線開頭,可以與get方法的名稱區分開④ 聲明方法列表:包括類方法和對象方法
類的實現
① 用@implementation和@end組合來實現類② 實現類聲明中的方法列表③ 類的實現也可以定義實例變量,通常不這樣定義④ 未實現聲明的類會發出警告
類的本質
① 類本質上也是一個對象,是class類定義的對象,稱為類對象② 使用class方法可以獲取類對象③ 每個類中都會有一個superclass指針指向其父類
類的加載和初始化
① 加載 1)類在使用之前會被加載至內存,加載完畢調用+(void)load方法 2)所有的類只會被加載一次 3)方法會在類加載的同時被加載 4)某個類定義的所有對象的isa指針都指向內存中該類的唯一副本 5)首先加載父類,其次是子類,最后是分類② 初始化 1)類在使用時才會調用initialize方法初始化 2)沒有使用的類不會調用initialize方法 3)首先調用父類的初始化方法,其次是子類
類的使用注意
① 類的聲明和實現必須成對出現② 類不能嵌套聲明和實現③ 成員變量不能在定義的時候初始化,也不能直接使用④ 成員變量不能用static等關鍵字修飾⑤ 訪問沒有的成員變量會報錯⑥ 成員變量必須寫在大括號內,方法列表不能寫在大括號內⑦ 類的聲明必須出現在使用之前
@public、@protected、@
① @public修飾的成員變量在任何地方都可以直接訪問② @protected修飾的成員變量可以在當前類以及子類的對象方法中直接訪問,默認為該類型③ @private修飾的成員變量只能在當前類的對象方法中直接訪問,在實現中聲明的成員變量默認為該類型④ @package修飾的成員變量在同一個“體系內”(框架)可以訪問, 介于@private和@public之間
2> 對象
對象與類
① 類是具有相同或相似屬性和操作的對象的抽象;對象是類的一個實例,是類通過調用一定的方法創建的② 類本身會占用內存空間,包含所有的方法列表③ 類的成員變量不會占用內存空間,只有在定義對象時才會分配存儲空間
對象的本質
① 本質上,我們研究的一切事物皆是的對象,包括具體事物和抽象事物② 每個對象總會攜帶它的isa成員,指向該對象的類③ 系統總會攜帶對象的相關信息
對象的創建和初始化
① 初始化方法通常用init開頭② 類方法alloc和init完成對象的創建和初始化③ 類方法new可以代替alloc和init完成對象的創建并初始化④ 在對象的初始化時會加載一次類,返回一個該類型的指針
匿名對象
① 每次創建的匿名對象都是不同的對象② 匿名對象會造成內存泄露,盡量不要創建類似匿名對象的對象
3> 方法
方法的定義
① 返回值類型:指定函數返回值的類型② 參數列表:多個參數用冒號及冒號前的描述隔開③ 方法名:在有參數列表的方法中,方法名包括冒號及冒號前的描述
類方法
① 以加號(+)開頭② 只能通過類名調用,可以在中括號內調用③ 不能訪問實例變量④ 當不需要訪問成員變量的時候通常使用類方法⑤ 工具類的方法通常為類方法
對象方法
① 以減號(-)開頭② 只能通過對象調用,可以在中括號內調用③ 對象方法能訪問實例變量
方法的使用注意
① 方法不能獨立與類而存在② 方法有聲明就必須有實現,否則會報錯③ 方法只有實現,沒有實現,仍然能夠調用,但是會發出警告④ 訪問沒有的方法會警告⑤ 類方法可以和對象方法同名⑥ 方法不能用static等關鍵字修飾⑦ 帶參數的方法,一個參數對應一個冒號,通常在每個冒號前寫描述
方法與函數的區別
① 函數的定義可以出現在文件的任意位置,方法只能出現在@implementation和@end之間② 函數歸文件所有,方法歸類/對象所有③ 方法通過類/對象調用,函數不依賴于類/對象④ 方法可以訪問成員變量,函數不可以
新聞熱點
疑難解答