2010-03-27 85 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