以下代码(removeViews
)是否正确删除了对象的引用,即删除它们,因此在调用方法Views
时,我不会继续进行更多createViews
。 createViews
创建视图,removeViews
将其设置为nil。 注意: 这是一个非常简单的例子,可以增强理解力,而不是用于实际目的。
-(void) createViews{
UITableView * tableView = [[UITableView alloc] initWithFrame:CGRectMake(0,0,200,200)];
tableView.delegate=self;
tableView.datasource = self;
self.mainTableView = tableView;//self.mainTableView is a weak reference
[self.view.superView addSubview: self.mainTableView];
UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,400)];
view.backgroundColor = [UIColor redColor];
self.mainView = view;//self.mainView is a strong reference
[self.view.superView addSubviews:self.mainView];
}
-(void) removeViews{
self.mainView = nil;
self.mainTableView=nil;
}
答案 0 :(得分:1)
首先将它们从superView中删除,然后将它们设置为nil
-(void) removeViews{
[self.mainView removeFromSuperview];
[self.mainTableView removeFromSuperview];
self.mainView = nil;
self.mainTableView=nil;
}