首页 > 移动平台 > 详细

ios initialize和init等方法

时间:2016-06-16 20:01:31      阅读:265      评论:0      收藏:0      [点我收藏+]

在程序运行过程中,创建多个类对象,只会调用一次initialize。而创建几个类对象就会调用几次init;

创建一个类aa,分别重写 initialize和init方法

#import "aa.h"

@implementation aa

+ (void)initialize{
    NSLog(@"%s",__func__);
    
}

- (instancetype)init{
    self = [super init];
    if (self) {
    NSLog(@"%s",__func__);
    }
    return self;
}
@end

在viewcontrller里创建两个aa类的对象

#import "ViewController.h"
#import "aa.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    aa *a1 = [[aa alloc]init];
    aa *a2 = [[aa alloc]init];
}
@end

打印结果是:

      技术分享

结论:在程序运行过程中,创建多个类对象,只会调用一次initialize。而创建几个类对象就会调用几次init;

 

创建一个类bb 继承自aa类

#import "aa.h"

@interface bb : aa

@end

在ViewController里创建两个bb类对象

#import "ViewController.h"
#import "bb.  
@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    bb *b1 = [[bb alloc]init];
    bb *b2 = [[bb alloc]init];
}
@end

打印结果:

    技术分享

结论:如果是子类的话,创建几次实例,initialize和init就会被调用几次

 

ios initialize和init等方法

原文:http://www.cnblogs.com/jiayongqiang/p/5591686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!