Objective C - 遍历 NSArray,其中所有对象都继承自同一协议

Objective C - Loop through NSArray where all objects inherit from same protocol

我有一个 NSArray,其中所有对象都从同一协议继承方法。我想做的是:

NSArray* arr =  [NSArray arrayWithObjects:[Type_1 init],[Type_2 init], nil];

for(Protocol *element in arr)
{
  [element do_this];
}

arr 是包含对象 Type_1 和 Type_2 的数组,它们都继承自名为 Protocol 的协议。

问题是 Protocol 不能用作 for in 循环中的类型。我该如何解决?

使用:

for(id < Protocol > element in arr)

指定对象属于通用类型并实现协议。

或者,您可以 'cheat' 一点并使用:

[arr makeObjectsPerformSelector:@selector(do_this)];

(不提供任何类型的支票)。