假设我有一个带有类方法的基类:
@interface基 : NSObject
+(id)方法;
@end
我有 10 个派生类:从 derived1 到 derived10,每个类都覆盖了该方法:
@interface derived1 : base
@end
现在这就是问题所在,我有一个这样的数组:
NSArray *array = [NSArray arrayWithObjects:[derived1 class],[derived2 类]。[派生10类]];
现在我想遍历这个数组并调用每个元素的方法,如何?
PS:我需要在foreach循环中逐个执行该方法。
- 像往常一样迭代
- 获取对象的类
-
调用该方法
for (id object in objects) { [[object class] method]; }
编辑
以上是如果您有具体实例(@Alladinian :)干杯)否则,如果您的示例代码是文字代码,并且您实际上将类放在您刚刚使用的数组中
for (id object in objects) {
[object method];
}
鉴于您有一个类似于您发布的数组:
NSArray *array = [NSArray arrayWithObjects:[derived1 class],[derived2 class]..[derived10 class]];
[array makeObjectsPerformSelector:@selector(method)];
编辑:OP编辑了这个问题,并说他需要逐一迭代和执行。所以按照保罗的回答,这真的是你需要的:)
或 makeObjectsPerformSelector:withObject: or enumerateObjectsUsingBlock: or enumerateObjectsWithOptions:usingBlock: 都这样做。另外,您可以简单地使用 for 进行迭代,并在每个对象上调用该方法。