控制器视图停止动画无法识别的选择器发送到实例

Posted

技术标签:

【中文标题】控制器视图停止动画无法识别的选择器发送到实例【英文标题】:controllerview stopAnimating unrecognized selector sent to instance 【发布时间】:2012-01-11 19:57:18 【问题描述】:

当我将一个新的 tableview 加载到我的导航堆栈上时,我收到了这个错误。 我正在解析的所有数据都显示在表格中,但是一旦完成,应用程序就会停止工作,并且出现此错误。

只是想知道是否有人知道问题可能是什么?或者我可以如何调试它?

如果您需要更多代码,请告诉我,我只是不知道要提供什么,因为我也不确定错误指的是什么。

-[VehicleResultViewController stopAnimating]: unrecognized selector sent to instance 0x6a2a680

【问题讨论】:

您似乎正试图阻止 UIActivityIndicatorView 制作动画。此消息发送是开始查找的好地方。活动指示器可能已被释放,但指针仍指向内存中 VehicleResultViewController 的实例现在所在的同一空间。 您的 VehicleResultViewController 类中是否有 stopAnimating 方法?它要么发送 stopAnimating 消息发送到 VehicleResultViewController 并且如果它没有在任何地方定义。或者 NSZombieEnabled 打开它,看看你是否正在向释放的对象发送消息。 我打开了 NSZombie,但运行时没有任何不同, @Mark Adams,我确实在主视图中有 ActivityIndi​​cators ..但这在 subbview 中倒塌了,你认为它仍然可能是那些 activityindicators 【参考方案1】:

您需要发布更多代码。

一般来说,当您尝试在没有实现该方法的类上调用方法时,会发生无法识别的选择器错误。

VehicleResultViewController 是 UITableViewController/UIViewController 吗?是否添加了 stopAnimating 方法? UIViewController 及其子类 UITableViewController 在其默认实现中没有 stopAnimating 方法。

如果它是 UITableViewController 或 UIViewController 并且您没有添加 stopAnimating 方法,那么您正在调用 VehicleResultViewController 没有的方法,因此会崩溃。

要更准确地回答您的问题真的很难,除非您:

    调用方法的位置的邮政编码 发布 VehicleResultViewController 的头文件,以便我们查看它是什么类(或者您可以直接告诉我们)。

也可能是(更有可能是)您的代码中有一个 UIActivityIndi​​catorView 想要停止旋转。在这种情况下,您确定它被命名为“vehicleResultViewController”吗?无论您的 UIActivityIndi​​catorView 被命名为什么,请尝试调用:

[whatever_your_activity_indicator_view_is_named stopAnimating];

【讨论】:

好的,我已经解决了。这里的问题是,停止动画让我感到困惑,我认为这与我的主视图上的 ActivityIndi​​cators 有关。所以我再次查看了我的第二个 ViewController 并意识到我正在调用 stopAnimating 但尚未成功。我搞混了,以为错误在其他地方,这是调用方法的代码 //removies SVProgressHUD [NSTimer scheduledTimerWithTimeInterval:0.25 target:self selector:@selector(stopAnimating) userInfo:nil repeats:NO]; 很抱歉给您带来了困惑,非常感谢您的帮助。 好的,我很高兴它已经解决了。我有一个小建议,可以帮助您在以后的调试中使用......尽量远离与标准 ios 类方法冲突的方法名称(stopAnimating 是 UIActivityIndi​​catorView 中的一种方法)。这肯定会帮助您调试,并在 SO 上获得更好的答案 (;))(当然,这不是最佳实践) 是的,很好,我正在改变它。天哪,真是个白痴。

以上是关于控制器视图停止动画无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章

从实用程序应用导航控制器视图发送到实例错误的无法识别的选择器

自定义表视图控制器因“initWithCoder:无法识别的选择器发送到实例”而崩溃

Swift UITableView 无法识别的选择器发送到实例

无法识别的选择器发送到实例...使用 segues 将字符串传递给另一个视图控制器

无法识别的选择器发送到 UINavigationController 的实例

[__NSArrayI 长度]:发送到实例的无法识别的选择器