アニメーション ブロックを含むメソッドがあります。クラス プロパティを引数としてメソッドに渡し、ブロック内で 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 であるため、ブロック内で nil に設定できます。しかし、ここでは、定義で、コンパイラ エラーが発生します。
"variable not assignable, missing block type specifier"
そこで、次のようにしてブロック指定子を追加してみました。
__block pinchedController = nil;
コンパイラは次のように述べています。
"unused variable pinchedViewController"
これは、pinchedController が新しい変数と見なされ、メソッド パラメーターに関連付けられていないことを意味すると思います。
私の質問は: pinchedViewController を引数として渡し、このブロック内で nil に割り当てる方法はありますか?