gpt4 book ai didi

ios - iOS中有没有一直调用的init方法?

转载 作者:可可西里 更新时间:2023-11-01 04:27:35 26 4
gpt4 key购买 nike

在 Cocoa 中是否有一种方法总是被调用?许多类都有 initinitWith,但更糟糕的是它们可以从 nib 或其他东西加载。在这种情况下,我不想四处寻找它是如何做到这一点的。我只想设置一些初始变量和其他东西,我想要一个子类化方法,无论它是 UIViewUIViewController 还是 ,我都可以依赖它UITableViewCell

最佳答案

不,没有这样的方法。 init 来自 NSObject 所以每个对象都可以使用它,并且子类定义了自己的初始化方法。例如UIView,定义了initWithFrame:,还有一些来自协议(protocol)的init方法,比如NSCoding,它定义了initWithCoder:。这就是 Objective-C 的动态特性,任何东西都可以随时扩展。话虽如此,还是有一些模式的。 UIViewController 几乎总是采用 initWithNibName:bundle:UIView 几乎总是采用 initWithFrame:initWithCoder:。我所做的是创建一个内部初始化方法,然后让其他初始化方法调用它。

- (void)initialize
{
//Do stuff
}

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

- (id)initWithCoder:(NSCoder *)aCoder
{
self = [super initWithCoder:aCoder];
if(self)
{
[self initialize];
}
}

关于ios - iOS中有没有一直调用的init方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751321/

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