Ошибка: имя параметра опущено - PullRequest
4 голосов
/ 26 февраля 2011

Я пытаюсь использовать анимацию с автореверсом и получаю указанную выше ошибку в строке "завершение: ^ (BOOL) закончено {".

            [UIView animateWithDuration:0.5 
                              delay:0
                            options:UIViewAnimationOptionAutoreverse
                         animations:^{
                             [[[self dieButtons] objectAtIndex:i] setTransform:CGAffineTransformMakeTranslation(0, 200)];
                         }
                         completion:^(BOOL)finished{

                         }];

Примечание. Сначала я попытался сделать это с помощью следующего кода, но кнопка переместилась на новое место в конце анимации.

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationRepeatAutoreverses:YES];
        [button setTransform:CGAffineTransformMakeTranslation(0, 200)];
        [UIView commitAnimations];

1 Ответ

21 голосов
/ 26 февраля 2011

finished - это имя параметра BOOL, а блоки Objective-C имеют сигнатуры функций в стиле C. Поэтому он должен быть в скобках.

Предполагается, что подпись блока должна выглядетькак это:

^(BOOL finished) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...