想知道以下代码中的 if (self = [super ...
) 的意义是什么?它试图防止什么情况?
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
// STUFF CONFIGURED HERE
}
return self;
}
拍摄from here 。
最佳答案
它正在防止 super 实现返回 nil。如果父类(super class)决定它无法初始化该对象,它可以释放它并返回 nil,如果您尝试进行任何初始化,那么程序就会崩溃,因为您试图取消引用 nil 指针。
关于ios - "if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) "有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268954/