UIViewは、UIResponderクラスを継承しているので、自動的に下記のメソッドを使うことができます。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
}
-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
}
そこで、各メソッドの中で
UITouch *touch = [touches anyObject];
と記述し、メソッドの最後に、
[touch release];
と書いて実行してみると、起動時は、うまくいくものの、一度、ホームに戻って再度、アプリを立ち上げると、異常終了となってしまいます。
おそらく実装上のミスなのですが、理由がちょっとわかりません。
宣言時に初期化を行っていないからなのかなーっと思っていますが。
(ex UITouch * touch = [[UITouch alloc] init];)
あまり気にしてしまうと、先に進まないので、とりあえず、releaseメソッドを書かずに、先に進んでいきます。
PS:そーいえば、サンプルアプリをいくつか見ていて、この記述がなかったので、やはり、書かない方が返っていいのかなーっと思っています。
メモリ管理も大変です。。。
2009/07/29
[Objective-C][iPhone sdk]UITouchのreleaseについて
ラベル:
mac/iOS,
Objective-C/C
登録:
コメントの投稿 (Atom)
0 コメント:
コメントを投稿