gpt4 book ai didi

ios - 将类作为参数传递并使用此类实例化对象

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

这可能吗,我在网上搜索了没有找到答案。我学长也说这不可能。

我想把它添加为一个类别,所以我想从中提取 4 种类型的对象,它们都使用相同的代码,只是类不同所以我想到了这个:

- (NSDictionary *) getObjectsOfClass:(Class)class
{

NSMutableDictionary *objDict = [NSMutableDictionary dictionary];

[self.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:class]) {

/*
Is there a way to do this?
class *label = (class *)obj;

*/


}
}];

return objDict;
}

那么有什么办法可以做到这一点吗?看到 4 个功能几乎相同的代码很难看,你同意吗?

最佳答案

如何将类名作为字符串传递并从中创建对象呢?可能是这样的

    -(NSArray *)arrayOfObjectsForClass:(NSString *)className{

NSMutableArray *objectArray = [[NSMutableArray alloc]init];
CGFloat yAxis = 10;
for(int i =0; i<5; i++){
id object = [[NSClassFromString(className) alloc]initWithFrame:CGRectMake(0, yAxis, 100, 50)];
[object setTitle:[NSString stringWithFormat:@"Button %d", i+1]];
[objectArray addObject:object];
yAxis+= 60;
}

return objectArray;
}

关于ios - 将类作为参数传递并使用此类实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23950337/

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