Метод переменных аргументов EXC_BAD_ACCESS, Objective-C [duplicate]

Используйте ответ Дэвида или так же просто, как сближение всех ожиданий, затем вызовите заданное текстовое значение следующим образом:

firstList = await GetFirstListFilesAsync();
secondList = await GetSecondListFilesAsync();
thirdList = await GetThirdListFilesAsync();

textBlock1.Text = "found " + firstList.Count + " first list's results";

textBlock2.Text = "found " + secondList.Count + " second list's results";

textBlock3.Text = "found " + thirdList.Count + " third list's results"
1
задан user732274 12 June 2013 в 10:15
поделиться

1 ответ

Примените атрибут

__attribute__((sentinel))

к вашему вариативному методу или, наоборот, используйте макрос

NS_REQUIRES_NIL_TERMINATION

, который расширяется до того же самого. Таким образом, компилятор будет знать, что ваш список вариационных аргументов должен быть 0-конечным.

- (void)foo:(id)arg1, ... NS_REQUIRES_NIL_TERMINATION
{
    va_list args;
    va_start(args, arg1);
    // ...
}
1
ответ дан user 17 August 2018 в 22:28
поделиться
  • 1
    Отлично. Есть ли способ намекнуть на пользовательский терминатор (я имею в виду, что-то отличное от нуля)? – user732274 12 June 2013 в 10:23
  • 2
    @ user732274 Я так не думаю. – user 12 June 2013 в 10:26