2010-03-27 79 views
1

我正在为iPhone编程一个应用程序。我还没有很好的循环。我如何将这段代码缩短为for循环?如何将一系列类似的行转换为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"]; 
} 

回答

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"]; 
    } 
} 
+0

2个错误,未申报的空间和选择元素没有一个有效的 – NextRev 2010-03-27 02:31:42

+0

型@NextRev - 检查你的资本。 – 2010-03-27 02:56:28

+0

我完全复制了它。仍然说空间未声明 – NextRev 2010-03-27 04:38:39