gpt4 book ai didi

iphone - 调用-initWithFrame : on super class

转载 作者:行者123 更新时间:2023-11-28 18:45:19 24 4
gpt4 key购买 nike

有人可以帮助我理解为什么我们在初始化之前首先调用 super 上的初始化方法。我在 UIView 的子类中遇到一段代码,想知道这里总是调用 myMethod,这意味着我没有在 UIView 中设置框架,那我们为什么要这样做并使用if 条件。

self = [super initWithFrame:CGRectMake(0, 0, 20, 100)];
if(self != nil) {
[self myMethod:data];
self.backgroundColor = [UIColor clearColor];
}
return self;

最佳答案

假设我有一个名为 SpinningViewUIView 子类。创建 spinningView 的代码如下所示:

SpinningView *spinner = [[Spin​​ningView alloc] initWithFrame:CGRectMake(0.0, 0.0, 20.0, 20.0)]

现在我们看一下SpinningView的-initWithFrame:方法的实现

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];

if (self)
{
self.backgroundColor = [UIColor clearColor];
}

return self;
}

第一行是简单的赋值。我们将自己分配给 UIView 执行 -initWithFrame:

的结果

我们使用 if 语句来查看 self 是否有效。如果不是,我们就将其退回。如果是,我们对其进行配置。

关于iphone - 调用-initWithFrame : on super class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com