我有一个问题,到目前为止,这让我花费了几个小时/天的调试时间。
我的情况是:
我没有任何地方的模态视图的引用(弱或强)。
这就是segue的执行方式:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UINavigationController *nav = [segue destinationViewController];
SomeViewController *vc = (SomeViewController *)[nav topViewController];
vc.dataArray = self.dataArray; // dataArray is a weak reference
}
这就是我关闭它的方式:
-(void)closeButtonClickHandler:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
在我的viewDidDisapear方法中,我将所有内容设置为nil
- (void)viewDidDisappear:(BOOL)animated
{
[self.map removeAnnotations:self.myMap.annotations];
self.map.delegate = nil;
self.map = nil;
self.view = nil;
[super viewDidDisappear:animated];
}
但是控制器仍然留在内存中。更糟糕的是,如果我多次打开它,它会不断增加消耗的内存,直到最终操作系统被迫关闭应用程序。
感谢任何/所有帮助:)
答案 0 :(得分:0)
我发现一个小的侧视图有一个错误的参考集。它本来就很强大,本来应该是“弱”的。
@property (nonatomic, weak) UISomeView * someView;
之后,内存正常释放,不再叠加
tnx @JonathanCicohons提示:)