Преобразование содержимого NSArray в varargs (с ARC) для использования с NSString initWithFormat

Сегодня у нас есть код, который принимает NSArray и передает его в качестве списка аргументов в -[NSString initWithFormat:arguments], и мы пытаемся заставить это работать с ARC. Вот код, который мы используем

NSString* format = @"Item %s and Item %s"; // Retrieved elsewhere
NSArray* args = [NSArray arrayWithObjects:@"1", @"2", nil]; // Retrieved elsewhere

// http://cocoawithlove.com/2009/05/variable-argument-lists-in-cocoa.html
char* argsList = (char*) malloc(sizeof(NSString*) * args.count);
[args getObjects:(id*) argsList];
NSString* message = [[[NSString alloc] initWithFormat:format arguments:argsList] autorelease];
free(argsList);

Любые рекомендации о том, как сделать это совместимым с ARC? Или мы даже открыты для лучшего способа сделать это.

13
задан Gary Rudolph 25 November 2011 в 19:17
поделиться