Мне нужно создать в приложении 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? Что я делаю не так?