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)];
(不提供任何类型的支票)。
我有一个 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)];
(不提供任何类型的支票)。