Как преобразовать серию похожих строк в цикл for? - PullRequest
1 голос
/ 27 марта 2010

Я программирую приложение для iPhone. Я пока не очень хорош с петлями. Как мне сократить этот код в цикл for?

if(CGRectContainsRect([space1 frame], [box frame])){

  space1.image = [UIImage imageNamed:@"box.png"];
 }
 else if(CGRectContainsRect([space2 frame], [box frame])){

  space2.image = [UIImage imageNamed:@"box.png"];
 }
 else if(CGRectContainsRect([space3 frame], [box frame])){

  space3.image = [UIImage imageNamed:@"box.png"];
 }
 else if(CGRectContainsRect([space4 frame], [box frame])){

  space4.image = [UIImage imageNamed:@"box.png"];
 }
 else if(CGRectContainsRect([space5 frame], [box frame])){

  space5.image = [UIImage imageNamed:@"box.png"];
 }

1 Ответ

6 голосов
/ 27 марта 2010
NSArray * spaces = [NSArray arrayWithObjects:space1, space2, space3, space4, space5, nil];
for (Space * space in spaces) {
  if (CGRectContainsRect([space frame], [box frame])) {
    space.image = [UIImage imageNamed:@"box.png"];
  }
}
...