Domanda

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

Attualmente ho un errore verificano raro che io non conosco la causa ancora. Io non sono sicuro dove guardare, quindi quello che voglio porre è che cosa le prime cinque righe (# 0 a 4 #) significa? So che sostiene che ci sono alcuni errori, ma cosa sono quelle cose come "___forwarding___"?

Se hai qualche conoscenza in questo, per favore aiutatemi. Grazie mille.

È stato utile?

Soluzione

La roba di inoltro è utilizzata per Uhm ... i messaggi di inoltro. Ogni oggetto può facilmente inoltrare i messaggi che riceve ad alcuni altri oggetti, vedere l'eccellente da Scott Stevenson . Quando il vostro GameObject riceve un messaggio che non capisce, cerca di trasmetterla. Se non c'è l'inoltro implementato, il metodo doesNotRecognizeSelector si chiama e si ottiene l'eccezione.

Descrizione dettagliata può essere trovata nel Mela documentazione per la classe NSObject:

  

Quando un oggetto viene inviato un messaggio per   che non ha metodo corrispondente,   il sistema runtime dà il ricevitore   la possibilità di delegare il messaggio   ad un altro ricevitore. Delega i   messaggio creando un NSInvocation   oggetto che rappresenta il messaggio e   l'invio di un ricevitore   forwardInvocation: messaggio contenente   questo oggetto NSInvocation come   discussione. Il ricevitore   forwardInvocation: metodo può quindi   scegliere di inoltrare il messaggio a   un altro oggetto.   (...)   implementazione di NSObject di   forwardInvocation: semplicemente invoca il   doesNotRecognizeSelector: metodo; esso   non inoltrare alcun messaggio. Così, se   si sceglie di non implementare   forwardInvocation :, l'invio   i messaggi non riconosciuti agli oggetti saranno   sollevare eccezioni.

Per quanto riguarda il tuo errore, sembra che il GameObject viene inviato qualche messaggio che non capisce. Questo può essere un semplice errore di battitura o qualcosa di più sottile simile errore di gestione della memoria, dovreste darci più informazioni.

Altri suggerimenti

Per prima cosa vorrei verificare è se GameObject ha un -doesTouch: o + doesTouch: metodo. Io non sono sicuro di cosa __forwarding ... è. Quale messaggio di errore vedete nel registro console?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top