私はlocationOfTouch:inViewを使用するとエラーが発生する理由を理解しようとしています。最終的に私はlocationOfTouchコールだけで新しいビューを作成しましたが、私はビューをタッチするたびにSIGABRTを取得します。ここでlocationOfTouch結果がSIGABRT
@interface Dummy : UIView <UIGestureRecognizerDelegate> {
UIPanGestureRecognizer *repositionRecognizer;
}
@end
をIMPLです:import文は別に
は、ここに私のビュー内のすべてのコードだ私はlocationInViewを使用している場合
@implementation Dummy
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
repositionRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
action:@selector(reposition:)];
[repositionRecognizer setDelegate:self];
[self addGestureRecognizer:repositionRecognizer];
self.backgroundColor = [UIColor grayColor];
}
return self;
}
- (void)reposition:(UIGestureRecognizer *) gestureRecognizer {
[gestureRecognizer locationOfTouch:0 inView:self];
//[gestureRecognizer locationInView:self];
}
@end
が、それは大丈夫動作します。私がlocationOfTouch:inViewを使用すると、タッチが終了すると直ちにプログラムが打ち切られます。
EDIT:このクラスでは、コンソールにエラーメッセージは表示されません。 IDEはmain.mにSIGABRTを指定します。 「続行」をクリックすると「EXC_BAD_INSTRUCTION」と表示されます。 http://imageshack.us/photo/my-images/849/consolel.png/
コンソールのエラーメッセージを投稿してください。 – zaph
コンソールに何も表示されません。ここをクリックしてください:http://imageshack.us/photo/my-images/849/consolel.png/ – undetected
コンソールでgdb>バックトレースまたはbtを実行して、クラッシュした最後のスタックを確認してください。環境変数NSZombieEnabledをYESに設定し、コードをデバッグしてください。 – 0x8badf00d