我试图实现如下的设计:
Touch类:充当接口,几个类继承它:
MoveTouch
JumpTouch
InterfaceTouch
然后我想要一个Touch对象的列表。然后我希望能够将所有MoveTouch对象(而不是其他对象)从这个大列表中去掉,然后将所有JumpTouch对象分别去掉,等等。不幸的是,for (MoveTouch* t in touches)并没有按我的要求去做;整个列表中的所有内容都会被执行。

最佳答案

您需要测试类类型:

for (Touch *t in touches) {
  if ([t isKindOfClass:[MoveTouch class]]) {
    MoveTouch *mt = (MoveTouch *)t;
    // do what you want with mt
  }
}

关于iphone - iPhone Objective-C foreach设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1706153/

10-09 23:41