使用for-loop而不是重复

时间:2014-06-23 11:52:18

标签: objective-c for-loop

Xcode noob在这里。任何人都可以指导我如何制作列表,如下所示在for循环?如果有可能吗?让它使用这些列表,但它需要花费太多时间,并可能因重复而导致错误。

_monkey1.center = CGPointMake(_monkey1.center.x, _monkey1.center.y);
_monkey2.center = CGPointMake(_monkey2.center.x, _monkey2.center.y);
_monkey3.center = CGPointMake(_monkey3.center.x, _monkey3.center.y);
_monkey4.center = CGPointMake(_monkey4.center.x, _monkey4.center.y);
_monkey5.center = CGPointMake(_monkey5.center.x, _monkey5.center.y);
etc.

我已经开始:

for (int k = 1; k < 20; k++){
// prep?
[[_monkeys objectAtIndex: k] setCenter: ....
}

有可能这样做吗?任何其他建议将不胜感激。

猴子是UIImageViews。感谢。

2 个答案:

答案 0 :(得分:1)

NSArray *monkies = @[ _monkey1, _monkey2, _monkey3, _monkey4, _monkey5 ];
for (UIImageView *monkey in monkies) {
    monkey.center = CGPointMake(monkey.center.x, monkey.center.y);
}

(注意,我假设这些对象的类型为Monkey,可能不正确)。

答案 1 :(得分:0)

还有另一种方法可以实现这一目标:

for (int k = 1; k < 20; k++) {
    YourMonkeyClass *monkey = [self valueForKey:[NSString stringWithFormat:@"monkey%ld", k]];
    monkey.center = CGPointMake(monkey.center.x, monkey.center.y);
}

有关valueForKey:的更多详情,请参阅Key-Value Coding and Observing