У меня есть метод, который содержит блок анимации. Я пытаюсь передать свойство класса в качестве аргумента для метода и назначить ему значение nil внутри блока.Передача аргумента методу, содержащему значение блока и присваивания
-(void)endPinching:(UIViewController *)pinchedController{
// a bunch of code
[UIView animateWithDuration:0.2 animations:^{
//do stuff
} completion:^(BOOL finished) {
// do other stuff
pinchedController = nil; //HERE IS THE PROBLEM!!
}];
}
}
Так что, если я называю этот метод в классе, что называется в, pinchController является self.pinchController и, следовательно, может быть установлен в ноль внутри блока. Но здесь, в определении, я получаю ошибку компиляции:
"variable not assignable, missing block type specifier"
Итак, я попытался добавить блок спецификатор, выполнив:
__block pinchedController = nil;
компилятор говорит:
"unused variable pinchedViewController"
Я предполагаю, что это означает, что pinchedController теперь считается новой переменной и не связан с параметром метода.
Мой вопрос: есть ли способ передать pinchedViewController в качестве аргумента и присвоить его нулю в этом блоке?
Какой смысл устанавливать локальную переменную (в этом случае «nil»), а затем не использовать ее снова? – newacct