首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >堆栈跟踪中的__forwarding__意味着什么?

堆栈跟踪中的__forwarding__意味着什么?
EN

Stack Overflow用户
提问于 2009-09-29 16:19:01
回答 2查看 1.8K关注 0票数 9
代码语言:javascript
复制
(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___“之类的东西是什么呢?

如果你在这方面有一些知识,请帮忙。非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-30 04:59:32

转发的东西用于嗯…。转发消息。每个对象都可以轻松地将它接收到的消息转发到其他对象,请参阅优秀的斯科特·史蒂文森的教程。当您的GameObject收到它不理解的消息时,它会尝试转发它。如果没有实现转发,则调用doesNotRecognizeSelector方法并得到异常。

可以在苹果文档中找到NSObject类的详细描述:

当一个对象被发送给它没有相应方法的消息时,运行时系统给接收者一个将消息委托给另一个接收者的机会。它通过创建表示消息的NSInvocation对象并向接收方发送包含此NSInvocation对象的forwardInvocation: message作为参数来委派消息。然后,接收方的forwardInvocation:方法可以选择将消息转发到另一个对象。(…)NSObject的forwardInvocation实现:简单地调用doesNotRecognizeSelector:方法;它不转发任何消息。因此,如果您选择不实现forwardInvocation:,向对象发送未识别的消息将引发异常。

至于您的错误,似乎GameObject被发送了一些它不理解的消息。这可能是一个简单的错误,也可能是一些更微妙的错误,比如内存管理错误,您必须给我们提供更多的信息。

票数 20
EN

Stack Overflow用户

发布于 2009-09-30 04:39:48

我首先要检查的是,GameObject是否有一个-doesTouch:还是+doesTouch:方法。我不知道__forwarding.是。您在控制台日志中看到了什么错误消息?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1493580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档