[英]`SwiftUI` - `EnvironmentObject`s, `EnvironmentValues` does not propagate to modally presented `UIViewController`
[英]Modally presented UIViewController does not empty memory on close
我有一个问题,到目前为止,这已经导致我花了很多小时/天进行调试。
我的情况是:
我在任何地方都没有模态视图的引用(弱引用或强引用)。
这是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];
}
但是控制器仍保留在内存中。 更糟糕的是,如果我多次打开它,它将一直添加到消耗的内存中,直到最终迫使操作系统关闭该应用程序为止。
任何/所有帮助表示赞赏:)
我发现一个小的侧视图具有错误的参考集。 这是“强”,应该是“弱”
@property (nonatomic, weak) UISomeView * someView;
此后,内存正常释放,不再堆积
tnx @JonathanCicohons的提示:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.