Kla*_*. S 0 types protocols objective-c for-in-loop
我有一个NSArray,其中所有对象都从相同的协议继承方法.我想做的是:
NSArray* arr = [NSArray arrayWithObjects:[Type_1 init],[Type_2 init], nil];
for(Protocol *element in arr)
{
[element do_this];
}
Run Code Online (Sandbox Code Playgroud)
arr是具有对象Type_1和Type_2的数组,它们都从名为Protocol的协议继承.
问题是协议不能用作for循环中的类型.我该如何解决这个问题?
使用:
for(id < Protocol > element in arr)
Run Code Online (Sandbox Code Playgroud)
指定对象是泛型类型并实现协议.
或者,您可以"欺骗"一点并使用:
[arr makeObjectsPerformSelector:@selector(do_this)];
Run Code Online (Sandbox Code Playgroud)
(不提供任何种类的检查).
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |