当我从导航控制器弹出VC并模拟内存警告时,我遇到了问题,应用程序将崩溃。 NSZombies向我展示了它是哪个vc,但有趣的是,它发生在一个没有代码的香草UIViewController上。
这是我的推送代码:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:
(NSIndexPath *)indexPath {
self.testVc = [[ZTestVCViewController alloc] init];
[self.navigationController pushViewController:self.testVc animated:YES];
}
以下是模拟内存警告时发生的情况:
2014-12-23 20:28:12.776 ----[3518:78070] Received memory warning.
2014-12-23 20:28:12.778 ----[3518:78070] *** -[ZTestVCViewController retain]: message sent to deallocated instance
无法想象我的生活。
我已经通过其他SO帖子进行了搜索,但似乎没有任何相似之处,因为这种情况发生在一个没有悬空指针的香草vc上。
编辑:
想补充说我正在使用ARC和self.testVc是一个弱引用。使用强引用是不可能的,因为内存只会徘徊。
答案 0 :(得分:0)
例如,如果从viewController B弹出到A,那么请确保在dealloc方法之前没有释放任何B视图控制器的IBOutlet。