1 類的本質(zhì)其實(shí)也是一個(gè)對(duì)象(類對(duì)象)
2
3 類對(duì)象
4 類對(duì)象再程序運(yùn)行時(shí)一直存在
5 類對(duì)象是一種數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)類的基本信息:類大小,類名稱,類的版本以及消息與函數(shù)的映射表等
6 類對(duì)象所保存的信息在程序編譯時(shí)確定,在第一次使用該類的時(shí)候加載到內(nèi)存中
7 類對(duì)象代表類,class代表類對(duì)象,類方法屬于類對(duì)象
8 如果消息的接受者是類名,則類名表示類對(duì)象
9 運(yùn)行時(shí),所有類的實(shí)例都由類對(duì)象生產(chǎn),類對(duì)象會(huì)把實(shí)例的isa地值修改成自己的地址,每個(gè)實(shí)例的isa都指向該實(shí)例的類對(duì)象,
10 從類對(duì)象里可以知道父類信息、可以響應(yīng)的方法等
11 類對(duì)象只能使用類方法,不能用實(shí)例方法
12
13 例:
14 Person *p = [Person new];
15 p 實(shí)例對(duì)象
16 Person 也是一個(gè)對(duì)象(類對(duì)象),是Class類型
類對(duì)象的獲取
10年建站經(jīng)驗(yàn), 成都網(wǎng)站制作、成都網(wǎng)站建設(shè)客戶的見證與正確選擇。成都創(chuàng)新互聯(lián)提供完善的營(yíng)銷型網(wǎng)頁建站明細(xì)報(bào)價(jià)表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。 1 1)通過實(shí)例對(duì)象獲取
2 Dog *dog =[Dog new];
3 Dog *d2 = [Dog new];
4
5 //第一種方法獲取類對(duì)象 6 Class c =[dog class];
7 Clsss c2 =[d2 class];
8
9 NSLog(@"%p",c);
10 NSLog(@"%p",c2);
11
12 2)通過類名獲取(類名其實(shí)就是類對(duì)象)
13
14 Class c3=[Dog class];
15 NSLog(@"%p",c3);
類對(duì)象的使用
1 原來使用類名可以做哪些事情?
2 創(chuàng)建對(duì)象
3 [Person new];
4 調(diào)用類方法
5 [Person test];//test是類方法 6
7 Person *p =[Person new];
8
9
10
11 c1---->Person
12
13 類對(duì)象的使用
14 Class c1 =[p class]; //Person15 1)創(chuàng)建實(shí)例對(duì)象
16 Person *p1= [c1 new];
17 2)調(diào)用類方法
18 [p test]; 調(diào)用的是實(shí)例方法 -動(dòng)態(tài)的
19 [c1 test]調(diào)用的是類方法 +靜態(tài)的
SEL類型
1 SEL:全稱selector表示方法的存儲(chǔ)位置
2
3 Person *p =[[Person allco]init];
4 [p test];
5
6 尋找方法的過程:
7 1)首先把test這個(gè)方法名包裝成sel類型的數(shù)據(jù);
8 2)根據(jù)SEL數(shù)據(jù)找到對(duì)應(yīng)的方法地址;
9 3)根據(jù)方法地址調(diào)用相應(yīng)的方法
10 4)注意:在這個(gè)操作過程中有緩存,第一次找的時(shí)候是一個(gè)一個(gè)的找,非常耗性能,之后再用到的時(shí)候就直接使用
11
12 關(guān)于_cmd:每個(gè)方法的內(nèi)部都有一個(gè)_cmd,代表著當(dāng)前方法
13
14 SEL其實(shí)是對(duì)方法的一種包裝,將方法包裝成一個(gè)SEL類型的數(shù)據(jù),去尋找對(duì)應(yīng)的方法地址,找到方法地址就可以調(diào)用方法.這些都是運(yùn)行時(shí)特征,發(fā)消息就是發(fā)送SEL,然后根據(jù)SEL找到地址,調(diào)用方法
15 //手動(dòng)的把eat方法包裝成SEL類型16 SEL s1 =@selector(eat);
17 //通過s1去調(diào)用了18 [p2 perfomSelector :s1];
網(wǎng)站名稱:OC類的介紹-創(chuàng)新互聯(lián)
地址分享:http://jinyejixie.com/article20/icpco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)站排名、全網(wǎng)營(yíng)銷推廣、微信小程序、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容