这个 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 发送到实例的无法识别的选择器

swift coredata - 发送到实例的无法识别的选择器

[UICollectionViewCell imageView]:无法识别的选择器发送到实例