Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 内存管理,需要释放吗?_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 内存管理,需要释放吗?

Iphone 内存管理,需要释放吗?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我想知道是否有人能很快帮我做以下事情,我是否需要添加一个[myTableView发行版];在我调用[view addSubview:[self myTableView]]?起初,我认为没有,并运行它通过叮当声产生的记忆警告 以下是我的想法: [自我设置MyTableView:诱惑视图];重新计数=(+1) [view addSubview:[self myTableView]];重新计数=(+2) //[myTableView发布] 你的方法不保留myTableView,所以它不应该发布它。你

我想知道是否有人能很快帮我做以下事情,我是否需要添加一个[myTableView发行版];在我调用[view addSubview:[self myTableView]]?起初,我认为没有,并运行它通过叮当声产生的记忆警告

以下是我的想法:

  • [自我设置MyTableView:诱惑视图];重新计数=(+1)
  • [view addSubview:[self myTableView]];重新计数=(+2)

  • //[myTableView发布] 你的方法不
    保留
    myTableView,所以它不应该
    发布
    它。

    你的方法不
    保留
    myTableView,所以它不应该
    发布
    它。

    你说得对
    [view addSubview:[self myTableView]]
    将保留您的表视图,但由于保留它的是
    视图
    ,因此应该是
    视图
    来释放它。当视图被解除锁定时,它将被解除锁定。您只需释放您自己保留的内容,即,您只需在解除锁定方法中释放表视图一次。

    您说得对
    [view addSubview:[self myTableView]]
    将保留您的表视图,但由于保留它的是
    视图
    ,因此应该是
    视图
    来释放它。而且,当视图被解除锁定时,您只需释放您自己保留的内容,即,您只需在解除锁定方法中释放表视图一次。

    我同意Carl的观点。view正在[self myTableView]上进行保留(“我的想法”上的第二个项目),但view将在发布时发布。谢谢Carl,非常感谢。我同意Carl的观点。view正在[self myTableView](我的想法)上保留,但view会在发布时发布。谢谢你,卡尔,非常感谢。谢谢你,菲利佩,你和卡尔是正确的,我将标记你的被接受,因为你解释了更多的事情,非常感谢……谢谢你,菲利佩,你和卡尔是正确的,我将把你的标记为接受,因为你解释了更多的事情,非常感谢。。。
    @property (nonatomic, retain) UITableView *myTableView;
    
    - (void)loadView {
        NSLog(@"%s", __PRETTY_FUNCTION__);
    
        [self setTitle:@"Location Data"];
        CGRect viewFrame = CGRectMake(0, 20, 320, 460);
        UIView *view = [[UIView alloc] initWithFrame:viewFrame];
    
        CGRect tableFrame = CGRectMake(0, 0, 320, 416);
        UITableView *tempTableView = [[UITableView alloc] initWithFrame:tableFrame];
        [self setMyTableView:tempTableView];
        [tempTableView release];
    
        [view addSubview:[self myTableView]];
        //[myTableView release]; << HERE
    
        [[self myTableView] setDelegate:self];
        [[self myTableView] setDataSource:self];
    
        [self setView:view];
        [view release];
    }
    
    - (void)dealloc {
        [myTableView release];
        [dataModel release];
        [super dealloc];
    }