今天coding的时候写了一个dealloc方法打了一个断点,building……运行……点击进入页面……返回。、。、???竟然没有调用dealloc方法???这是肿么回事?
仔细查看了下代码、把代码注释掉运行,竟然好了。
原来是用Notificationcenter(通知中心)写的block方法使页面返回的时候没有销毁:
[[NSNotificationCenter defaultCenter]addObserverForName:UIKeyboardDidChangeFrameNotification object:self queue:nil usingBlock:^(NSNotification *note) {
<#code#>
}];
把上面的改成这种使用方法就好了:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(searchBarCancelButtonShow) name:UIKeyboardDidChangeFrameNotification object:nil];
同理所有没有调用dealloc方法的页面都是用了常驻内存的对象。