日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CO-类的本质、description方法

發布時間:2025/7/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CO-类的本质、description方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

類的本質

1. 類也是個對象

  • 其實類也是一個對象,是Class類型的對象,簡稱“類對象”
  • Class類型的定義

typedef struct objc_class ?*Class;

  • 類名就代表著類對象,每個類只有一個類對象

?

2. +load和+initialize

  • +load

l?? 在程序啟動的時候會加載所有的類和分類,并調用所有類和分類的+load方法

l?? 先加載父類,再加載子類;也就是先調用父類的+load,再調用子類的+load

l?? 先加載元原始類,再加載分類

l?? 不管程序運行過程有沒有用到這個類,都會調用+load加載

?

  • +initialize

l?? 在第一次使用某個類時(比如創建對象等),就會調用一次+initialize方法

l?? 一個類只會調用一次+initialize方法,先調用父類的,再調用子類的

?

3. 獲取類對象的2種方式

Class c = [Person class];// 類方法?

或者

Person*p = [Person new];

Class c2 = [p class];// 對象方法

?

4. 類對象 調用類方法

Class c = [Person class]; ?

Person *p2 = [c new];

?

#import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" #import "GoodStudent.h" /*1.當程序啟動時,就會加載項目中所有的類和分類,而且加載后會調用每個類和分類的+load方法。只會調用一次。2.當第一次使用某個類時,就會調用當前類的+initialize方法3.先加載父類,再加載子類(先調用父類的+load方法,再調用子類的+load方法)先初始化父類,再初始化子類(先調用父類的+initialize方法,再調用子類的+initialize方法)*/int main() {// [[GoodStudent alloc] init];return 0; }void test1() {Person *p = [[Person alloc] init];//[Person test];// 內存中的類對象// 類對象 == 類Class c = [p class];[c test];Person *p2 = [[c new] init];NSLog(@"00000"); }void test() {// 利用Person這個類創建了2個Person類型的對象Person *p = [[Person alloc] init];Person *p2 = [[Person alloc] init];Person *p3 = [[Person alloc] init];// 獲取內存中的類對象Class c = [p class];Class c2 = [p2 class];// 獲取內存中的類對象Class c3 = [Person class];NSLog(@"c=%p, c2=%p, c3=%p", c, c2, c3);// 類本身也是一個對象,是個Class類型的對象,簡稱類對象/*利用Class 創建 Person類對象利用 Person類對象 創建 Person類型的對象*/

description方法

使用場合:?

1.????? -description方法

使用NSLog和%@輸出某個對象時,會調用對象的-description方法,并拿到返回值進行輸出

返回: <類名: 內存地址>

2.????? +description方法

使用NSLog和%@輸出某個類對象時,會調用類對象+description方法,并拿到返回值進行輸出

3.????? 修改NSLog的默認輸出

l?? 重寫-description或者+description方法即可

4.????? 死循環陷阱

l?? 如果在-description方法中使用NSLog打印self

#import <Foundation/Foundation.h> #import "Person.h"void test9() {// 輸出當前函數名NSLog(@"%s\n", __func__); }int main() {// 輸出行號NSLog(@"%d", __LINE__);// NSLog輸出C語言字符串的時候,不能有中文// NSLog(@"%s", __FILE__);// 輸出源文件的名稱printf("%s\n", __FILE__);test9();Person *p = [[Person alloc] init];// 指針變量的地址NSLog(@"%p", &p);// 對象的地址NSLog(@"%p", p);// <類名:對象地址>NSLog(@"%@", p);return 0; }void test2() {Class c = [Person class];// 1.會調用類的+description方法// 2.拿到+description方法的返回值(NSString *)顯示到屏幕上NSLog(@"%@", c); }void test1() {Person *p = [[Person alloc] init];p.age = 20;p.name = @"Jack";// 默認情況下,利用NSLog和%@輸出對象時,結果是:<類名:內存地址>// 1.會調用對象p的-description方法// 2.拿到-description方法的返回值(NSString *)顯示到屏幕上// 3.-description方法默認返回的是“類名+內存地址”NSLog(@"%@", p);//Person *p2 = [[Person alloc] init];//NSLog(@"%@", p2);//NSString *name = @"Rose";//NSLog(@"我的名字是%@", name); Person *p2 = [[Person alloc] init];p2.age = 25;p2.name = @"Jake";NSLog(@"%@", p2); }

?

?

#import "Person.h"@implementation Person// 決定了實例對象的輸出結果 //- (NSString *)description //{ // // 下面代碼會引發死循環 // // NSLog(@"%@", self); // return [NSString stringWithFormat:@"age=%d, name=%@", _age, _name]; // //return @"3424324"; //}// 決定了類對象的輸出結果 + (NSString *)description {return @"Abc"; }@end

?

轉載于:https://www.cnblogs.com/IDRI/p/4956369.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的CO-类的本质、description方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女搞黄视频网站 | 国产男女猛烈无遮挡免费视频 | 狠狠操一区二区 | 国产大学生自拍视频 | 亚洲精品乱码久久久久 | 一极毛片 | 久久天堂av综合合色蜜桃网 | 黄污视频在线观看 | 干日本少妇首页 | 亚洲在线电影 | 欧美一级视频在线观看 | 亚洲第一色网 | 四季av国产一区二区三区 | 亚洲精品aa | 成人夜色| 国产白丝喷水 | 国产欧美一级 | 性无码专区无码 | 国产91免费在线观看 | 热久久久| 国产婷婷在线观看 | 超级变态重口av番号 | 久久一级大片 | 天天干夜夜看 | 在线观看免费视频黄 | 18av视频| 日韩精品一区中文字幕 | 秋霞一区二区 | 日日干天天操 | 国产男女猛烈无遮挡免费视频 | 黄色一级一片免费播放 | 禁断介护av| 青青草青青操 | 国产suv精品一区二区68 | jjzz国产| a级一级片 | 午夜精品福利在线观看 | 香港av在线 | 人超碰 | 五月激情小说 | 色多多av | 欧美性潮喷xxxxx免费视频看 | 免费黄色a级片 | 国产区av | 手机版av| 久久综合色鬼 | 岛国av动作片 | 欧美午夜精品久久久久久人妖 | 色图av | 风韵多水的老熟妇 | 免费欧美一级 | 小柔的淫辱日记(h | 高清乱码免费 | 日韩精品一区二区三区网站 | 风间由美在线观看 | 亚洲国产激情 | 国产高清精品一区二区三区 | 末路1997全集免费观看完整版 | 欧美男女视频 | 亚洲熟妇无码一区二区三区导航 | 日本成人不卡 | 亚洲欧洲av在线 | 一级免费毛片 | 性欧美一区二区 | 国产中文网 | 日韩人妻精品在线 | 亚洲第一成年网 | eeuss国产一区二区三区黑人 | 一级香蕉视频在线观看 | 日本少妇激三级做爰在线 | 图书馆的女友在线观看 | 免费成人高清在线视频 | 婷婷丁香社区 | 亚洲 欧美 成人 | 亚洲最新| 午夜做爰xxxⅹ性高湖视频美国 | 狠狠操人人干 | 这里只有精品视频在线 | 67194少妇在线观看 | 亚洲国产日韩一区无码精品久久久 | 日本大奶少妇 | 又色又爽又黄18网站 | 性生活一级大片 | 亚洲成人麻豆 | 欧洲在线视频 | 可以免费看av的网站 | 污av | 伊人爱爱网 | 中文字幕无线精品亚洲乱码一区 | 久久99一区二区 | 亚洲一区二区观看 | 成人福利午夜 | 又欲又污又肉又黄短文 | 黑人100部av解禁片 | 欧美精品色婷婷五月综合 | 成人免费毛片观看 | 8x8x永久免费视频 | 污视频在线免费观看 | 99热精品在线播放 |