поддельный va_list в ARC

Мне нужно создать в приложении iOS поддельный va_list для передачи в функцию NSString initWithFormat: arguments: , это мой код:

NSArray *fixedArguments = [[NSArray alloc] initWithArray:arguments]; 

NSRange range = NSMakeRange(0, [fixedArguments count]);

va_list fakeArgList = (va_list)malloc(sizeof(NSString *) * [fixedArguments count]);

__unsafe_unretained id *ptr = (__unsafe_unretained id *)fakeArgList;

[fixedArguments getObjects:ptr range:range];

content = [[NSString alloc] initWithFormat:outputFormat
                                            arguments:(va_list)fakeArgList];
free(fakeArgList);

Компилятор жалуется на это сообщение в строке приведения:

error: cast of a non-Objective-C pointer type 'va_list' (aka 'char *') to '__unsafe_unretained id *' is disallowed with ARC

Функция getObjects: range: определяется следующим образом:

- (void)getObjects:(id __unsafe_unretained [])objects range:(NSRange)range;

Я пробовал все, но все еще не могу избавиться от этой ошибки ...

Есть ли решение для создания поддельного va_list с включенным ARC? Что я делаю не так?

17
задан Scakko 21 November 2011 в 13:03
поделиться