スタックトレース内__forwarding__は何を意味するのでしょうか?
-
18-09-2019 - |
質問
(gdb) bt
#0 0x302ac924 in ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___ ()
#1 0x92077e3b in objc_exception_throw ()
#2 0x302d6ffb in -[NSObject doesNotRecognizeSelector:] ()
#3 0x3026e056 in ___forwarding___ ()
#4 0x3024a0a2 in __forwarding_prep_0___ ()
#5 0x00004ae9 in -[GameObject doesTouch:] (self=0xe893a0, _cmd=0x643ee, obj=0xe82e20) at /Users/aaa/Desktop/CPT/Game/Classes/GameObject.m:220
#6 0x00006e05 in -[StaticGrid checkTouchNearest:] (self=0xe82f20, _cmd=0x64ec3, obj=0xe893a0) at /Users/aaa/Desktop/CPT/Game/Classes/StaticGrid.m:62
#7 0x0000a393 in -[EAGLView touchesBegan:withEvent:] (self=0xe8dad0, _cmd=0x3199fa3c, touches=0x632c0b0, event=0xe14590) at /Users/aaa/Desktop/CPT/Game/Classes/EAGLView.m:459
#8 0x30910f33 in -[UIWindow _sendTouchesForEvent:] ()
#9 0x308faecb in -[UIApplication sendEvent:] ()
#10 0x309013e1 in _UIApplicationHandleEvent ()
#11 0x32046375 in PurpleEventCallback ()
#12 0x30245560 in CFRunLoopRunSpecific ()
#13 0x30244628 in CFRunLoopRunInMode ()
#14 0x32044c31 in GSEventRunModal ()
#15 0x32044cf6 in GSEventRun ()
#16 0x309021ee in UIApplicationMain ()
...
現在、私は、私はまだ原因が分からない珍しいoccuringエラーを持っています。私はどこので、私はお願いしたいものです、見てわからないの(#4#0)最初の5行が意味する何をすべきか?の私は多少の誤差があること、それが主張していることを知っているが、 "___forwarding___
" のようなそれらの事は何ですか?
あなたがこの中にいくつかの知識を持っている場合は、助けてください。ありがとうございました。
解決
転送のものは、のオム... の転送メッセージに使用されます。各オブジェクトは、簡単にスコット・スティーブンソンhref="http://theocacao.com/document.page/265" rel="nofollow noreferrer">チュートリアル。あなたのGameObject
はそれが理解していないメッセージを受信すると、それを転送しようとします。何の転送実装が存在しない場合は、doesNotRecognizeSelector
メソッドが呼び出されると、あなたは例外を取得されます。
詳細説明は、 NSObject
クラスのアップルのドキュメントするます:
オブジェクトは、メッセージのために送信された場合 それに該当するメソッドを持っていません、 ランタイムシステムは、受信機を与えます メッセージを委任する機会 別の受信機へ。この代表団 NSInvocationを作成することによって、メッセージ メッセージを表すオブジェクトと 受信機aを送ります forwardInvocation:メッセージを含みます このNSInvocationオブジェクト 引数。受信者の forwardInvocation:この方法は、することができます にメッセージを転送することを選択します 別のオブジェクト。 (...) のNSObjectのの実装 forwardInvocation:単純に呼び出し、 doesNotRecognizeSelector:メソッド。それ すべてのメッセージを転送しません。したがって、もし あなたは実装しないことを選択します forwardInvocation :,送信 オブジェクトに認識されていないメッセージます 例外を発生させる。
あなたのエラーについては、GameObject
が、それは理解していないいくつかのメッセージが送信されるようです。これは、あなたが私たちに多くの情報を与える必要があるだろう、単純なタイプミスやメモリ管理エラーのような、より微妙なものになることができます。
他のヒント
私がチェックする最初のものは、ゲームオブジェクトが-doesTouchを持っているかどうかです。私は何であるか__forwarding ...わかりません。どのようなエラーメッセージがコンソールログに見ていますか?