2010-03-27 6 views
1

Je suis en train de programmer une application pour l'iPhone. Je ne suis pas très bon avec les boucles pour le moment. Comment puis-je raccourcir ce code dans une boucle for?Comment convertir une série de lignes similaires en une boucle 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"]; 
} 

Répondre

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 erreurs, les espaces non déclarés et élément de sélection ne dispose pas d'un type valide – NextRev

+0

@NextRev - vérifier votre capitalisation. –

+0

Je l'ai copié exactement. Toujours dit Space non déclaré – NextRev