gpt4 book ai didi

objective-c - 子类化 Objective C 类方法

转载 作者:可可西里 更新时间:2023-11-01 06:21:07 25 4
gpt4 key购买 nike

我有一个关于子类化和类方法的问题。

我有一个基类MyBaseClass,它有一个方便的类方法

+ (id)giveMeAClassUsing:(NSString *)someParameter;

MyBaseClass 不是单例。

现在,我想创建一个 MyBaseClass 的子类,我们称它为 MyChildClass。我希望在 MyChildClass 上也有相同的类方法。此外,我还希望在执行此操作时初始化 MyChildClass 上的实例变量。

会做这样的事情:

+ (id)giveMeAClassUsing:(NSString *)someParameter {

MyChildClass *anInstance = [super giveMeAClassUsing:someParameter];
anInstance.instanceVariable = [[UIImageView alloc] initWithFrame:someFrame];

return anInstance;
}

有效吗?

感谢您(提前)提供的所有帮助,解决了我的困惑并澄清了一些概念!

干杯!

最佳答案

那会很好的。

可能更好的方法是以您不需要覆盖它的方式定义您的便捷构造函数:

 + (id)myClassWithString: (NSString *)string {
return [[[self alloc] initWithString:string] autorelease];
}

无论调用哪个父类(super class)或其任何子类,这都会做正确的事情。

然后只更改子类中的initWithString: 方法来处理初始化:

- (id)initWithString: (NSString *)string {
return [self initWithString:string andImageView:[[[UIImageView alloc] initWithFrame:someFrame] autorelease]] ;
}

关于objective-c - 子类化 Objective C 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321887/

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