这个 Obj-C“发送到实例的无法识别的选择器”异常表示啥?
Posted
技术标签:
【中文标题】这个 Obj-C“发送到实例的无法识别的选择器”异常表示啥?【英文标题】:What does this Obj-C "unrecognized selector sent to instance" exception indicate?这个 Obj-C“发送到实例的无法识别的选择器”异常表示什么? 【发布时间】:2010-04-06 19:23:05 【问题描述】:这是什么意思?
* 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因: '* -[NSPathStore2 hidesBottomBarWhenPushed]: 无法识别的选择器发送到实例 0x1cd3d0'
【问题讨论】:
【参考方案1】:这意味着正在向一个字符串发送一条用于视图控制器的消息。由于在大多数情况下很难将一个对象误认为另一个对象,这通常表示内存管理错误,其中一个对象(在本例中为视图控制器)已被释放,而另一个对象已被放置。
【讨论】:
【参考方案2】:该消息表明您尝试使用对象无法识别/处理的选择器来调用对象。
在您的示例中,这意味着 hidesBottomBarWhenPushed 不由 NSPathStore2 处理,就像 Chuck 解释的那样,这是有道理的,因为 NSPathStore2 是 NSString 的私有子类,而 hidesBottomBarWhenPushed 似乎是用于视图控制器的选择器。
简而言之 -> 您将选择器发送到错误的对象。
【讨论】:
以上是关于这个 Obj-C“发送到实例的无法识别的选择器”异常表示啥?的主要内容,如果未能解决你的问题,请参考以下文章
[__NSArrayI 长度]:发送到实例的无法识别的选择器
[UICollectionViewCell imageCell]:发送到实例的无法识别的选择器
从 didSelectRowAtIndexPath 发送到实例的无法识别的选择器