美文网首页iOS菜鸟联盟
iOS 解析[xxxxController respondsTo

iOS 解析[xxxxController respondsTo

作者: 走向菜鸟的菜鸟 | 来源:发表于2018-02-23 11:53 被阅读44次
崩溃原因:

[xxxxController respondsToSelector:]: message sent to deallocated instance 0x1310293e0

场景复现:

从产品列表页跳转到产品详情页,返回到产品列表页,切换tabItem,再返回到产品的tabItem,出现崩溃到main函数的现象,使用僵尸模式复现崩溃现象,得到[xxxxController respondsToSelector:]: message sent to deallocated instance 0x1310293e0的崩溃原因。

问题解析:

由于控制器释放,又再次向这个VC调用了某些请求导致崩溃。出现该问题的原因,大部分是由于实现了xxx.delegate = self;当VC释放后,这个xx还没有被释放,所以xx的回调方法还在调用delegate即这里的VC,所以崩溃就发生了。

查找原因:

针对该控制器VC中所有添加delegate的代码,一个一个排查,最后发现在基类BaseViewController中使用了self.navigationController.delegate = self;进行实现导航控制器代理方法了,使用完之后没有释放。

错误解决办法:
  1. 在该控制器VC的- (void)dealloc {}方法中实现self.navigationController.delegate = nil,由于dealloc的延迟调用,还是无法解决问题。
  2. 在该控制器VC的- (void)viewWillDisappear:(BOOL)animated {}方法中实现self.navigationController.delegate = nil,但是会导致基类BaseViewController的导航控制器代理方法失效。
正确解决办法:

在该控制器VC的基类BaseViewController中进行解决:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    
    self.navigationController.delegate = self;
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    
    self.navigationController.delegate = nil;
}
ps:个人见解,如有错误,还请评论指出,多多指教。

相关文章

  • iOS 解析[xxxxController respondsTo

    崩溃原因: [xxxxController respondsToSelector:]: message sent ...

  • iOS delegate 报错 Thread 1: EXC_B

    通过僵尸调试模式出现[xxxxController respondsToSelector:]: message s...

  • iOS 录音-上传与播放解析

    title : iOS 录音-上传与播放解析category : IOS iOS 录音-上传与播放解析 标签(...

  • 责任链模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 外观模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 工厂模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 抽象工厂模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 享元模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 观察者模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 中介者模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

网友评论

    本文标题:iOS 解析[xxxxController respondsTo

    本文链接:https://www.haomeiwen.com/subject/zaztxftx.html