日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

oc40--类的启动过程

發(fā)布時(shí)間:2025/5/22 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oc40--类的启动过程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
// // main.m // 類的啟動(dòng)過程#import <Foundation/Foundation.h> #import "Person.h" #import "GoodStudent.h"/* 只要程序啟動(dòng)就會將所有類的代碼加載到內(nèi)存中, 放到代碼區(qū)load方法會在當(dāng)前類被加載到內(nèi)存的時(shí)候調(diào)用, 有且僅會調(diào)用一次如果存在繼承關(guān)系, 會先調(diào)用父類的load方法, 再調(diào)用子類的load方法*/int main(int argc, const char * argv[]) {/*2017-08-23 15:05:08.882568+0800 類的啟動(dòng)過程[36713:860727] Car類被加載到內(nèi)存了2017-08-23 15:05:16.019104+0800 類的啟動(dòng)過程[36713:860727] Person類被加載到內(nèi)存了2017-08-23 15:05:17.390692+0800 類的啟動(dòng)過程[36713:860727] Student類被加載到內(nèi)存了2017-08-23 15:05:19.161607+0800 類的啟動(dòng)過程[36713:860727] GoodStudent類被加載到內(nèi)存了還沒有使用類的時(shí)候就加載到內(nèi)存了。*/Person *p1 = [[Person alloc] init];Person *p2 = [[Person alloc] init];Person *p3 = [[Person alloc] init];Person *p4 = [[Person alloc] init];GoodStudent *gstu = [[GoodStudent alloc] init];/*2017-08-23 15:08:55.461633+0800 類的啟動(dòng)過程[36844:863122] Person initialize2017-08-23 15:09:01.543395+0800 類的啟動(dòng)過程[36844:863122] Studnet initialize2017-08-23 15:09:06.376914+0800 類的啟動(dòng)過程[36844:863122] GoodStudent initialize */return 0; } // // Person.h#import <Foundation/Foundation.h>@interface Person : NSObject @end // // Person.m#import "Person.h"@implementation Person // 只要程序啟動(dòng)就會將所有類的代碼加載到內(nèi)存中, 放到代碼區(qū) // load方法會在當(dāng)前類被加載到內(nèi)存的時(shí)候調(diào)用, 有且僅會調(diào)用一次 // 如果存在繼承關(guān)系, 會先調(diào)用父類的load方法, 再調(diào)用子類的load方法 + (void)load {NSLog(@"Person類被加載到內(nèi)存了"); }// 當(dāng)當(dāng)前類第一次被使用的時(shí)候就會調(diào)用(創(chuàng)建類對象的時(shí)候) // initialize方法在整個(gè)程序的運(yùn)行過程中只會被調(diào)用一次, 無論你使用多少次這個(gè)類都只會調(diào)用一次 // initialize用于對某一個(gè)類進(jìn)行一次性的初始化 // initialize和load一樣, 如果存在繼承關(guān)系, 會先調(diào)用父類的initialize再調(diào)用子類的initialize + (void)initialize {NSLog(@"Person initialize"); }@end // // Student.h#import "Person.h"@interface Student : Person@end // // Student.m#import "Student.h"@implementation Student + (void)load {NSLog(@"Student類被加載到內(nèi)存了"); } + (void)initialize {NSLog(@"Studnet initialize"); } @end // // GoodStudent.h#import "Student.h"@interface GoodStudent : Student@end // // GoodStudent.m#import "GoodStudent.h"@implementation GoodStudent + (void)load {NSLog(@"GoodStudent類被加載到內(nèi)存了"); } + (void)initialize {NSLog(@"GoodStudent initialize"); }@end // // Car.h#import <Foundation/Foundation.h>@interface Car : NSObject@end // // Car.m#import "Car.h"@implementation Car + (void)load {NSLog(@"Car類被加載到內(nèi)存了"); } + (void)initialize {NSLog(@"Car initialize"); } @end

?

轉(zhuǎn)載于:https://www.cnblogs.com/yaowen/p/7418320.html

總結(jié)

以上是生活随笔為你收集整理的oc40--类的启动过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。