当我从一个viewcontroller移动到另一个(包含图像,滚动视图,标签和其他stuf)时,我的持久性不会被释放。
在乐器中,它目前看起来像这样:
事实:
我尝试过:
用weakSelf替换所有出现的self
typeof(self) __weak weakSelf = self;
我使用imageWithContentsOfFile而不是imageNamed
[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"thumbUp" ofType:@"png"]]
not
[UIImage imageNamed:@"thumbUp.png"]
在" - (void)viewDidDisappear:(BOOL)动画"我有:
使所有计时器无效
[_searchAnimationTimer invalidate];
将所有内容设置为nil(每个对象和变量)
_searchAnimationTimer = nil;
删除观察员
[[NSNotificationCenter defaultCenter] removeObserver:weakSelf]
将所有代表设置为nil
[self.tableView setDelegate:nil];
将所有数据源设置为nil
[self.tableView setDataSource:nil];
我已添加 [super viewDidDisappear:(BOOL)animated]; 在&#34 ;-(void)viewDidDisappear:(BOOL)动画& #34;
-(void)viewDidDisappear:(BOOL)animated{
//Code here
[super viewDidDisappear:(BOOL)animated];
}
在" - (void)viewDidLoad" I:
使用两者
关闭ViewControllers[weakSelf.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
和
_mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
_vc = [_mainStoryboard instantiateViewControllerWithIdentifier:@"Omraden"];
[_vc dismissViewControllerAnimated:NO completion:^{ }];
在.h我有:
我为故事板中的所有对象创建了一个IBOutlet。
并将所有@property设置为弱
@property (weak, nonatomic) IBOutlet UIView *contentView;
我的下一步是什么?我可以做些什么常见的改变?我是内存管理方面的佼佼者。需要更多信息?我会快速回答:)
在"(void)viewDidDisappear:(BOOL)动画"中,还将每个UIimageView的图像设置为nil,如下所示:
_someImageView.image = nil;
我还补充说:
for (CALayer* layer in [weakSelf.view.layer sublayers])
{
[layer removeAllAnimations];
}
开始在for-statements中使用@autoreleasepool(不确定在哪里使用它)
@autoreleasepool{
//code
}