ブロックを使用して、いくつかの入力イベントに関連してインスタンス変数を更新してみたかったのです。
私のUIViewControllerクラスでは:
@interface ViewController : UIViewController{
CGPoint touchPoint;
void (^touchCallback)(NSSet* touches);
}
@property(readwrite) CGPoint touchPoint;
@end
実装ファイル内:
-(id) init{
if (self = [super init]){
touchCallback = ^(NSSet* set){
UITouch * touch= [set anyObject];
self.touchPoint = [touch locationInView:self.view];
};
}
return self;
}
コールバック関数では、ブロックを使用します:
-(void)touchesBegin:(NSSet *)touches withEvent:(UIEvent *)event{
touchCallback(touches);
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
touchCallback(touches);
}
いくつか試してみましたが、selfインスタンスを使用するとBAD_ACCESSが発生します。どこが問題なのかわかりません。