正确移除对象(附代码示例) iOS

Posted

技术标签:

【中文标题】正确移除对象(附代码示例) iOS【英文标题】:Correctly remove object (with code example) iOS 【发布时间】:2014-05-14 12:08:14 【问题描述】:

以下代码 (removeViews) 是否正确删除了对对象的引用,即删除它们,所以当调用方法 createViews 时,我不会继续制作更多 ViewscreateViews 创建视图,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;



 

【问题讨论】:

【参考方案1】:

首先将它们从它们的 superView 中删除,然后将它们设置为 nil

-(void) removeViews
        [self.mainView removeFromSuperview];
        [self.mainTableView removeFromSuperview];
        self.mainView = nil;
        self.mainTableView=nil;
     

【讨论】:

谢谢,如果视图只是添加到视图中,比如[self.view addSubview: self.mainView],或者这是同一件事吗? 以上代码会从superView中移除self.mainView

以上是关于正确移除对象(附代码示例) iOS的主要内容,如果未能解决你的问题,请参考以下文章

R语言实战应用精讲50篇(二十八)-大量代码示例带你从基础到高级(附R语言代码)

Python3.9的69个内置函数(内建函数)介绍,并附简单明了的示例代码

详解Python的元组(tuple)的12种操作方法,并附示例代码

Python标准库中的列表(list数组)操作汇总(大约25种操作),附示例代码

写一段代码在遍历 ArrayList 时移除一个元素?

详解OpenCV的坐标重映射函数remap()的两种使用方法并附使用它得到图像的水平镜像和垂直镜像的示例代码