首页 > 其他 > 详细

init&initWithFrame&initWithCoder

时间:2016-03-10 20:19:07      阅读:200      评论:0      收藏:0      [点我收藏+]
//当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化
- (id)initWithFrame:(CGRect)frame
{
    if (self =[superinitWithFrame:frame]) {
        // 初始化代码
    }
    return self;
}

用于视图加载nib文件,从nib中加载对象实例时,使用 initWithCoder初始化这些实例对象
- (id)initWithCoder:(NSCoder*)coder
{
    if (self =[superinitWithcoder:coder]) {
        // 初始化代码
    }
    return self;
}

而在init,会先调用initwithframe方法来初始化视图内容
// init内部首先会调用这个方法,所以initWithFrame打印在前
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        NSLog(@"initWithFrame");
    }
    return self;
}

// initWithFrame方法调用完毕后才执行这个方法体,所以init打印在后
- (instancetype)init
{
    // 这个方法内部调用,initWithFrame方法
    self = [super init];
    if (self) {
        NSLog(@"init");
    }
    return self;
}

init&initWithFrame&initWithCoder

原文:http://www.cnblogs.com/ritian/p/5263120.html

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