美文网首页
OC语言day04-18类的启动过程

OC语言day04-18类的启动过程

作者: liyuhong165 | 来源:发表于2016-05-29 23:33 被阅读0次

pragma mark 类的启动过程

pragma mark 概念

/*
 #warning 当前类 被加载到内存的时候调用
 // load : 加载;装载;装货
 // 只要程序 启动 就会将所有类的代码 加载到内存中
 // load 方法会在当前类 被加载到内存的时候调用, 而且仅会调用一次
 
 #warning 当 当前类第一次被使用的时候 就会调用(创建类对象的时候)
 // initialize : 初始化
 // initialize 方法在整个程序的运行过程中 只会被调用一次, 无论你使用多少次 这个类都只会调用一次
 // initialize 用于 对某一个类进行一次性的初始化
 
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#import "GoodStudent.h"
#pragma mark main函数
int main(int argc, const char * argv[])
{
    
    Person *p = [[Person alloc]init];
    Person *p1 = [[Person alloc]init];
    Person *p2 = [[Person alloc]init];
    Person *p3 = [[Person alloc]init];

    GoodStudent *s = [[GoodStudent alloc]init];
    
    return 0;
}


Person.h //人类
#import <Foundation/Foundation.h>

@interface Person : NSObject

@end
Person.m
#import "Person.h"

@implementation Person
#warning 当前类 被加载到内存的时候调用
// load : 加载;装载;装货
// 只要程序 启动 就会将所有类的代码 加载到内存中
// load 方法会在当前类 被加载到内存的时候调用, 而且仅会调用一次

// 如果存在继承关系, 先调用父类的load方法, 在调用子类的load方法
+ (void)load
{
    NSLog(@"person类被加载到内存了");
}

#warning 当 当前类第一次被使用的时候 就会调用(创建类对象的时候)
// initialize : 初始化
// initialize 方法在整个程序的运行过程中 只会被调用一次, 无论你使用多少次 这个类都只会调用一次
// initialize 用于 对某一个类进行一次性的初始化

// initialize 和load一样,如果存在在继承关系,会先调用父类的initalize , 再调用子类的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 类被加载到内存了");
}

+ (void)initialize
{
    NSLog(@"student initialize");
}
@end

goodStudent.h //好学生类 (学生的子类)
#import "Student.h"

@interface GoodStudent : Student

@end
goodStudent.m
@implementation GoodStudent
+ (void)load
{
    NSLog(@"goodStudent 类被加载到内存了");
}

+ (void)initialize
{
    NSLog(@"goodStudent initialize");
}
@end

Car.h //Car (汽车类)
#import <Foundation/Foundation.h>

@interface Car : NSObject

@end
Car.m
@implementation Car


+ (void)load
{
    NSLog(@"car类被加载到内存了");
}

+ (void)initialize
{
    NSLog(@"car initialize");
}
@end

相关文章

  • OC语言day04-18类的启动过程

    pragma mark 类的启动过程 pragma mark 概念 pragma mark 代码 Person.h...

  • 第04天OC语言(18):类的启动过程

    不要等到明天,明天太遥远,今天就行动。 须读:看完该文章你能做什么? 清楚知道什么时候调用load,什么时候调用i...

  • 一些基本知识

    1.面向过程与面向对象 OC中的类是面向对象,C语言中的结构体是面向过程。OC不能直接编译,需要由runtime转...

  • 2018年6月26日【python学习笔记】

    类 1.编程思想: 面向过程编程:C语言(只有逻辑和过程) 面向对象编程:Java、c++、oc、python等(...

  • C语言入门

    课程要点: C语言是一种面向过程的语言,OC是一种面向对象的语言 类与对象的关联 如何在xcode中创建一个类 如...

  • 随笔

    oc实质上是在c语言的基础上进行了一层oc包装,也可以说c语言就是oc的父类(超类),所有oc语言能实现的功能用c...

  • OC总结(1)

    1.如何理解OC C语言是一种面向过程的语言,OC则是面相对象的语言,所以想要理解OC就要先了解面向过程和面向对象...

  • 第一章:熟悉OC

    OC语言特性:-1. OC是在C的语言基础上添加了面向对象特性。 -2. OC与C++,JAVA等面向对象的语言类...

  • 20-Swift调用OC和OC调用Swift

    一、Swift调用OC 创建一个Swift语言的工程; 用OC语言创建一个Person类:Swift调OC-1此时...

  • OC对象的本质(上)

    iOS | OC对象本质 | Objective-C 什么是OC语言,OC对象、类的本质是什么,OC对象的内存布局...

网友评论

      本文标题:OC语言day04-18类的启动过程

      本文链接:https://www.haomeiwen.com/subject/lxbqdttx.html