(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 ()
...目前,我有一个罕见的错误,我还不知道原因。我不知道该看哪里,所以我想问的是,前五行(#0到#4)是什么意思?我知道它声称有一些错误,但是像"___forwarding___“之类的东西是什么呢?
如果你在这方面有一些知识,请帮忙。非常感谢。
发布于 2009-09-30 04:59:32
转发的东西用于嗯…。转发消息。每个对象都可以轻松地将它接收到的消息转发到其他对象,请参阅优秀的斯科特·史蒂文森的教程。当您的GameObject收到它不理解的消息时,它会尝试转发它。如果没有实现转发,则调用doesNotRecognizeSelector方法并得到异常。
可以在苹果文档中找到NSObject类的详细描述:
当一个对象被发送给它没有相应方法的消息时,运行时系统给接收者一个将消息委托给另一个接收者的机会。它通过创建表示消息的NSInvocation对象并向接收方发送包含此NSInvocation对象的forwardInvocation: message作为参数来委派消息。然后,接收方的forwardInvocation:方法可以选择将消息转发到另一个对象。(…)NSObject的forwardInvocation实现:简单地调用doesNotRecognizeSelector:方法;它不转发任何消息。因此,如果您选择不实现forwardInvocation:,向对象发送未识别的消息将引发异常。
至于您的错误,似乎GameObject被发送了一些它不理解的消息。这可能是一个简单的错误,也可能是一些更微妙的错误,比如内存管理错误,您必须给我们提供更多的信息。
发布于 2009-09-30 04:39:48
我首先要检查的是,GameObject是否有一个-doesTouch:还是+doesTouch:方法。我不知道__forwarding.是。您在控制台日志中看到了什么错误消息?
https://stackoverflow.com/questions/1493580
复制相似问题