i日久生。。。

iOS init~初始化流程

2018-03-04  本文已影响10人  NapoleonY

UIView有多个init方法

新建一个类View

#import "View.h"

@implementation View

- (instancetype)init {
    self = [super init];
    if (self) {
        NSLog(@"调用init");
    }
    return self;
}

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        NSLog(@"调用initWithFrame");
        NSString *str = NSStringFromCGRect(frame);
        NSLog(@"frame = %@", str);
    }
    return self;
}

- (instancetype)initWithSth:(NSString *)sth {
    self = [super init];
    if (self) {
        NSLog(@"调用initWithSth");
    }
    return self;
}

@end

备注:
Swift 中使用let view = testView()这种方式初始化时,首先调用override init(frame: CGRect)函数(此时FrameCGRectZero),同上述“使用init函数创建实例”一样

上一篇 下一篇

猜你喜欢

热点阅读