假设我有一个带有类方法的基类:
@interface base:NSObject
+(id)的方法;
@end
我有10个派生类:从derived1到derived10,每个都覆盖方法:
@interface derived1 : base
@end
现在问题就出现了,我有一个像这样的数组:
NSArray * array = [NSArray arrayWithObjects:[derived1 class],[derived2 class] ....... [derived10 class]];
现在我想遍历这个数组并调用每个元素的方法,如何?
PS:我需要在foreach循环中逐个执行该方法。
答案 0 :(得分:2)
在
上调用方法for (id object in objects) {
[[object class] method];
}
以上是如果你有具体的实例(@Alladinian :)欢呼)否则如果你的示例代码是文字的,你实际上把类放在数组中你只需要使用
for (id object in objects) {
[object method];
}
答案 1 :(得分:1)
鉴于您有一个类似于您发布的数组的数组:
NSArray *array = [NSArray arrayWithObjects:[derived1 class],[derived2 class]..[derived10 class]];
[array makeObjectsPerformSelector:@selector(method)];
修改强> OP编辑了这个问题并说他需要逐个迭代并执行。那么请选择保罗的答案,这真的是你需要的:)
答案 2 :(得分:0)
查找NSArray方法。 makeObjectsPerformSelector或makeObjectsPerformSelector:withObject:或enumerateObjectsUsingBlock:或enumerateObjectsWithOptions:usingBlock:all do that that。另外,你可以简单地用for迭代并在每个对象上调用方法。