作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设一个 View Controller 是这样创建的:
@property (nonatomic, strong) SomeViewController *someViewController;
...
self.someViewController = [[SomeViewController alloc] initWithView:imgView];
[self addChildViewController:self.someViewController];
self.someViewController.view.frame = self.view.bounds;
[self.mainView addSubview:self.someViewController.view];
__weak MainViewController *weakSelf = self;
self.someViewController.didCloseBlock = ^{
[weakSelf.someViewController.view removeFromSuperview];
[weakSelf.someViewController willMoveToParentViewController:nil];
[weakSelf.someViewController removeFromParentViewController];
weakSelf.someViewController = nil;
};
SomeViewController didReceiveMemoryWarning
中,我看到了我创建新 SomeViewController 次数的日志。例如,当我在打开 9 个新的 SomeViewController 后收到内存警告时,我会收到 9 个 didReceiveMemoryWarning 日志,这表明我在内存中有 9 个 SomeViewController 实例,尽管我在上面的代码中将每个实例都清空了。
最佳答案
您使用强注释在您的属性中保留您的 View 一次,然后使用 self.someViewController = [[SomeViewController alloc] initWithView:imgView];
再次保留您的 View 。
使用综合变量应该摆脱这个:_someViewController = [[SomeViewController alloc] initWithView:imgView];
如果您不使用 ARC,可以使用 self.someViewController = [[[SomeViewController alloc] initWithView:imgView] autorelease];
我可能会选择第一个选项,不管是否是 ARC。
关于ios - 为什么 UIViewController 会留在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17765460/
这是我的jade雕像: section#entry-review-template.template(data-class='entry-review') table thead
我是一名优秀的程序员,十分优秀!