如何将一系列相似的行转换为for循环?

Nex*_*Rev 1 iphone for-loop objective-c foundation

我正在为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"];
 }
Run Code Online (Sandbox Code Playgroud)

Dav*_*ong 6

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"];
  }
}
Run Code Online (Sandbox Code Playgroud)

  • @NextRev那是因为我不知道什么样的对象`space1` ...`space5`,所以我只是组成了`Space`类.将其更改为他们应该使用的任何类型. (3认同)