gpt4 book ai didi

objective-c - 关于将一些方法移至父类(super class)

转载 作者:行者123 更新时间:2023-12-03 17:59:25 26 4
gpt4 key购买 nike

我需要将相同的方法从 4 个不同的类移动到父类(super class)。这些方法完全相同,除了其中声明的变量类型不同:

例如,在我的第一个类的方法中

FirstClass var = [[FirstClass alloc] init]

二年级

SecondClass var = [[SecondClass alloc] init]

等等。

在父类(super class)中实现这种变体的最佳方法是什么?

我应该在父类(super class)中使用 NSClassFromString 并从子类中的每个方法获取每个字符串吗?

谢谢

最佳答案

我不是 100% 确定我明白你的意思。所以我可能回答了错误的问题

如果在你的类中你需要使用一个对象(我下面称之为worker)来完成你的工作,但这个对象的类直到稍后才知道,你可以使用依赖注入(inject)(DI)。

MyClass.h

@interface MyClass : NSObject

@property (nonatomic, retain) id<WorkerInterface> worker;

@end

MyClass.m

@implementation MyClass

@synthesize worker = _worker;

- (void)myMethod;
{
[self.worker doSomething];
}

// You could also provide a default class to use if one is not passed in
//
// - (id<WorkerInterface)worker;
// {
// if (!_worker) {
// _worker = [[DefaultWorker alloc] init];
// }
// return _worker;
// }

@end

现在,每当我实例化此类时,我都可以简单地传入要使用的适当对象,例如:

MyWorkerClass *worker = [[MyWorkerClass alloc] init]; // <- Conforms to @protocol(WorkerInterface)
MyClass *instance = [[MyClass alloc] init];
instance.worker = worker;

[instance doSomething];

关于objective-c - 关于将一些方法移至父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862521/

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