ViewController respondsToSelector:]: 消息发送到释放的实例
Posted
技术标签:
【中文标题】ViewController respondsToSelector:]: 消息发送到释放的实例【英文标题】:ViewController respondsToSelector:]: message sent to deallocated instance 【发布时间】:2012-05-19 05:04:18 【问题描述】:当我启用“僵尸对象”时,我收到此错误(“ViewController respondsToSelector:]: message sent to deallocated instance”)。我发现错误在哪里,但我不知道如何解决。
代码如下: ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UISearchDisplayDelegate, UISearchBarDelegate>
// The saved state of the search UI if a memory warning removed the view.
NSString *savedSearchTerm;
NSInteger savedScopeButtonIndex;
BOOL searchWasActive;
@property (nonatomic, copy) NSString *savedSearchTerm;
@property (nonatomic) NSInteger savedScopeButtonIndex;
@property (nonatomic) BOOL searchWasActive;
ViewController.m
...
// when I comment out "viewDidDisappear" everything is ok, how to solve this on different way?
- (void)viewDidDisappear:(BOOL)animated
// save the state of the search UI so that it can be restored if the view is re-created
self.searchWasActive = [self.searchDisplayController isActive];
self.savedSearchTerm = [self.searchDisplayController.searchBar text];
self.savedScopeButtonIndex = [self.searchDisplayController.searchBar selectedScopeButtonIndex];
...
谢谢你的帮助
【问题讨论】:
你解决过这个问题吗?我也有同样的问题。 @EliGregory - 是的。我评论 viewDidDisappear :) 所以我没有重写那个方法,我得去别处看看 万一它是相关的,请查看这个类似的问题:***.com/questions/11170614/… 【参考方案1】:你在做什么来“创造”这个错误?
在我的情况下,我将 ViewController 从导航堆栈中弹出,仍然有 NSNotifications 发送到这个 VC。我只是忘记删除我的 VC 的所有观察者。
【讨论】:
【参考方案2】:您应该将 [super viewDidDisappear:animated] 放在覆盖的开头,因为这是默认实现。忘记那条线有时会导致问题。
编辑:
我认为您可能需要发布更多代码。关键可能在于您正在做或不做的其他事情。
【讨论】:
【参考方案3】:/*
- (void)viewDidDisappear:(BOOL)animated
// save the state of the search UI so that it can be restored if the view is re-created
self.searchWasActive = [self.searchDisplayController isActive];
self.savedSearchTerm = [self.searchDisplayController.searchBar text];
self.savedScopeButtonIndex = [self.searchDisplayController.searchBar selectedScopeButtonIndex];
*/
【讨论】:
以上是关于ViewController respondsToSelector:]: 消息发送到释放的实例的主要内容,如果未能解决你的问题,请参考以下文章
ViewController 将结果返回给调用它的 ViewController [重复]
你如何将数据从 ViewController 传递到包含单独 ViewController 的 PageViewController,然后这些 ViewController 将使用这些数据?
需要从另一个viewController调用其他viewController中的方法
Xcode 10.1 ViewController.h 与 ViewController.swift