1.編譯指令:cc -c xx.m
2.查看所有文件:ls - l
3.新建文件:touch xx.m
4.打開文件:open xx.m
5.編譯文件:cc -c xx.m
6.警告:2 warnings generated.
7.繼承語法:@interface xxx : NSObject ? ?@end
8.加上 #import <Foundation/Foundation.h>
9.程序一退出,就會回收說有的內(nèi)存空間
10.OC中使用指針來使用對象朱巨,指針指向?qū)ο蟮牡刂?/p>
11.[Car new]會創(chuàng)建出一個(gè)新對象细燎,并且會返回新對象本身(新對象的地址)
12. OC對象的本質(zhì)就是結(jié)構(gòu)體
13.實(shí)例變量也叫成員變量
14.error:instance variable 'wheels' is protected p->wheels = 4;
@public 可以讓外部間接地訪問類內(nèi)的成員變量
15.默認(rèn)情況下丐巫,所有成員變量的對象值都是0
16.類的聲明熄诡,寫成員變量笨忌,方法的聲明
17.類的實(shí)現(xiàn)
18.對象方法必須以減號開頭橱乱,OC方法中的小括號,只能擴(kuò)住數(shù)據(jù)類型
19.發(fā)送消息赦政,所有對象都能共享這段代碼泻红,指針
20.p里面存儲的東西冲粤,交給p2某弦,那么p2指針指向的地址的數(shù)據(jù)是p指向地址的數(shù)據(jù)
21.對象的簡單內(nèi)存分析危纫,類只占一份存儲內(nèi)存空間,一個(gè)對象會占有一塊內(nèi)存空間掰派,類的內(nèi)存空間和對象不相同
22.在使用類創(chuàng)建對象之前从诲,會將類的內(nèi)存空間申請出來,類里面有方法列表靡羡,每個(gè)對象內(nèi)部其實(shí)都有一個(gè)默認(rèn)的指針 isa
23.對象內(nèi)部有一個(gè)isa 指針系洛,它的作用,就是指向?qū)ο笏鶎?yīng)的類
24.類里面有一個(gè)方法列表略步,的內(nèi)存空間
25.OC對象與函數(shù)的關(guān)系:函數(shù)參數(shù)是基本數(shù)據(jù)類型就是值傳遞描扯,如果函數(shù)參數(shù)是個(gè)指針就是; [Car new]這行代碼過后就在內(nèi)存中有一個(gè)類 和 對象的內(nèi)存空間了纳像。
Car類-(void)run;方法列表荆烈;
地址:ffc0 Car對象 Wheels=0 Speed=0 默認(rèn)的isa指針
Car *c;是一個(gè)新的指針地址 c=0xff9;
追后拯勉,c的指針地址就是賦值給了上面函數(shù)的指針竟趾,函數(shù)的指針就也指向c指針指向的那塊內(nèi)存地址。
函數(shù)的參數(shù)宫峦,在函數(shù)調(diào)用完之后岔帽,形參數(shù)的內(nèi)存就會收回。
26.想清楚指針現(xiàn)在指向的是誰导绷,類的內(nèi)存只有一份
27.OC中的對象一直會在內(nèi)存中犀勒,對象是不可能回收的
28.mian函數(shù)退出后,所有內(nèi)存都會回收妥曲。
29.實(shí)例變量贾费,必須有對象的時(shí)候,這個(gè)對象才能產(chǎn)生
30.@interface 里面只允許給成員變量申明檐盟,不允許給成員變量賦值
31.static 不可以修飾成員變量(實(shí)例變量)
32.函數(shù)有內(nèi)部函數(shù)和外部函數(shù)褂萧,static 修飾的函數(shù)式內(nèi)部函數(shù),方法不允許
33.OC程序與c使用的編譯器是一樣的葵萎,編譯的順序都是從上到下編譯导犹,只需要把申明放在前面
34.函數(shù)和方法的區(qū)別:本質(zhì)的區(qū)別唱凯,對象的方法都是-開頭,聲明和實(shí)現(xiàn)寫在制定的地方谎痢,否者編譯器不知道是哪個(gè)類的磕昼,對象方法只能對象來調(diào)用。?
35. ./a.out 是調(diào)用main()函數(shù)节猿,已經(jīng)完成編譯和鏈接的2步了
36.函數(shù)是可以寫在文件中的申明之外的任意位置票从,函數(shù)是歸文件所有的,main()函數(shù)之后的話沐批,就先申明一下纫骑。最好,還是將函數(shù)寫在外面九孩。
37.對象方法是歸類所有或者是對象所有