2010-04-04 4 views
2

cela doit être un problème simple mais quelqu'un peut-il me dire pourquoi ce travail ne marche pas:cordes combinant Obj-C

visibilityString1 = @"the"; 
visibilityString2 = @"end"; 

visibilityString = (@"This is %@ %@", visibilityString1, visibilityString2); 

Chaque fois que j'essaie de combiner des chaînes de cette façon, il ne retournera la deuxième chaîne si ce que je reçois est:

fin

Répondre

5

Je crois que ce que vous cherchez est:

visibilityString = [NSString stringWithFormat:@"This is %@ %@", visibilityString1, visibilityString2]; 

Amusez-vous!

6

Utilisez les éléments suivants:

visibilityString = [NSString stringWithFormat:@"This is %@ %@", visibilityString1, visibilittyString2]; 

Explications

En C (et donc aussi dans ObjC), la syntaxe (expression, expression, expression) évalue toutes les expressions et renvoie la valeur de la dernière. Donc, si vous faites:

int foo = (bar(), baz(), 4); 

bar() et baz() seront appelés, mais foo sera 4. (Ne faites pas ça à la maison, ce n'est pas une bonne pratique.)