@Chuck est correct sur le fait que vous ne pouvez pas convertir un NSArray en varargs. Cependant, je ne recommande pas la recherche pour le modèle de la %@
dans la chaîne et de le remplacer à chaque fois. (En remplacement de caractères au moyen d'une chaîne est généralement tout à fait inefficace, et pas une bonne idée si vous pouvez accomplir la même chose de façon différente.) Voici un moyen plus efficace pour créer une chaîne de caractères au format que vous décrivez:
NSArray *array = ...
NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSMutableArray *newArray = [NSMutableArray arrayWithCapacity:[array count]];
for (id object in array) {
[newArray addObject:[NSString stringWithFormat:@"x=%@", [object description]]];
}
NSString *composedString = [[newArray componentsJoinedByString:@", "] retain];
[pool drain];
J'ai inclus l'autorelease pool pour un bon entretien, depuis un autoreleased chaîne sera créé pour chaque entrée de ce tableau, et la mutable tableau est autoreleased ainsi. Vous pouvez facilement faire cela en une méthode/fonction et revenir composedString
sans retenue, et de gérer l'autorelease ailleurs dans le code si vous le souhaitez.