Question

(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 ()
...

Actuellement, j'ai une erreur rare que je ne survenant connais pas encore la cause. Je ne sais pas où regarder, donc ce que je veux poser est qu'est-ce que les cinq premières lignes (# 0 à # 4) signifie? Je sais qu'il prétend qu'il ya des erreurs, mais quelles sont ces choses comme "___forwarding___"?

Si vous avez des connaissances dans ce domaine, s'il vous plaît aider. Merci beaucoup.

Était-ce utile?

La solution

La substance de transfert est utilisé pour UHM ... Messages d'expédition. Chaque objet peut facilement transmettre les messages qu'il reçoit à d'autres objets, voir l'excellent par Scott Stevenson . Lorsque votre GameObject reçoit un message qu'il ne comprend pas, il essaie de le transmettre. S'il n'y a pas de transfert mis en œuvre, la méthode doesNotRecognizeSelector est appelée et vous obtenez l'exception.

Description détaillée se trouve dans la section documentation Apple pour la classe NSObject:

  

Quand un objet est envoyé un message pour   laquelle elle n'a pas de méthode correspondante,   le système d'exécution donne le récepteur   l'occasion de déléguer le message   à un autre récepteur. Il délègue les   un message en créant un NSInvocation   objet représentant le message et   l'envoi d'un récepteur   forwardInvocation: message contenant   cet objet NSInvocation comme   argument. du récepteur   forwardInvocation: méthode peut alors   choisir de transmettre le message à   un autre objet.   (...)   La mise en œuvre de NSObject de   forwardInvocation: utilise simplement le   doesNotRecognizeSelector: méthode; il   ne transmet aucun message. Ainsi, si   vous choisissez de ne pas mettre en œuvre   forwardInvocation :, envoi   messages non reconnus à des objets seront   lever des exceptions.

En ce qui concerne votre erreur, il semble que le GameObject est envoyé un certain message, il ne comprend pas. Cela peut être une simple faute de frappe ou quelque chose de plus subtile comme erreur de gestion de la mémoire, vous devriez nous donner plus d'informations.

Autres conseils

La première chose que je voudrais vérifier est de savoir si gameobject a une -doesTouch: ou + doesTouch: méthode. Je ne suis pas sûr de ce que __forwarding ... est. Quel message d'erreur que vous voyez dans le journal de la console?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top