日韩性视频-久久久蜜桃-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二区av三区 | 亚洲人午夜射精精品日韩 | 人妖一区二区三区 | 免费看美女被靠到爽的视频 | 蜜桃久久久久久 | 欧美tv | 国产精品三级 | av手机免费看 | 国产成人小视频 | 成人免费高清在线观看 | 亚洲性欧美色 | 国产资源在线免费观看 | 秋霞成人| 久久精品视频在线观看 | avt天堂网| 肥老熟妇伦子伦456视频 | 日本毛片在线 | 97视频免费在线观看 | 日本成人免费在线视频 | 亚洲国产综合视频 | chinese hd av| 久久久久亚洲av无码专区体验 | 成人午夜精品一区二区 | 激情视频免费在线观看 | 91久久精品www人人做人人爽 | 亚洲AV乱码国产精品观看麻豆 | 国产3p露脸普通话对白 | 久久黄网| 色老汉av一区二区三区 | 日韩av日韩 | 欧美少妇激情 | 激情五月婷婷综合网 | 香蕉视频一区二区三区 | 中文字幕日产乱码中 | 免费看黄色av | 日本在线www | 午夜视频免费 | 欧美综合一区 | 欧美国产精品 | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 国产精品88av | 人人妻人人爽欧美成人一区 | 性欧美巨大 | 特级丰满少妇一级aaa爱毛片 | a视频在线免费观看 | 校园激情av | 极品在线观看 | 日韩一区二区三区在线视频 | 国产床上视频 | 乱lun合集小可的奶水 | 国产毛片高清 | 玖玖玖国产精品 | 一区二区免费在线观看视频 | 一区二区三区日韩欧美 | 亚洲AV无码一区二区伊人久久 | 五月天婷婷丁香花 | 男人操女人网站 | 国产精品白丝喷水在线观看 | 欧美日韩精品亚洲精品 | 1000部啪啪 | 久久在线视频 | 美女福利一区 | 人人草人人 | 91视频看| 国产欧美精品区一区二区三区 | 日韩一级色片 | 丰满秘书被猛烈进入高清播放在 | 色就是色亚洲色图 | 日本激情一区二区三区 | 国产精品第一页在线观看 | 人乳喂奶hd无中字 | 亚洲av第一成肉网 | 国产专区自拍 | 色爱亚洲 | 亚洲伦乱 | 91精品一区二区三 | 国产高清无密码一区二区三区 | 久久久久人妻一区精品色欧美 | 国产精品福利小视频 | 黄色精彩视频 | av免费片| 日韩91av | jizz在线观看| 少妇高潮惨叫久久久久久 | 亚洲欧美自拍偷拍 | 久久免费视频一区二区 | 日本亚洲欧洲色 | 天天舔日日操 | 激情图片网站 | 久久亚洲精 | 欧美亚洲激情视频 | 乖女从小调教h尿便器小说 欧美韩一区二区 | 天天尻| 2018中文字幕在线观看 | 国产福利免费在线观看 | 99热这里只有精 | www一区二区 | 欧美成人做爰大片免费看黄石 | 亚洲一区二区三区在线视频观看 |