何时在目标c中释放实例变量

时间:2011-01-28 05:00:33

标签: objective-c

我有一个代码片段,如下所示:

-(void) getAccounts {
        accounts = [[NSMutableArray alloc] init];
        selAccounts=[[NSMutableArray alloc] init];
        NSString *url=[NSString stringWithFormat:@"https://host/accts"];
        processor=[[AsynConnectionProcessorController alloc] init];
        processor.delegate=self;
        processor.server=self.server;
        [processor createRequestfromURL:url];
}

当我选择查看帐户时,以及当我从帐户详细信息视图返回到帐户列表时,我会通过在帐户列表页面中选择一个帐户来调用此视图(帐户列表)。每次我从帐户详细信息页面返回列表帐户页面时,我都会在“工具”中看到内存泄漏。 accountsselAccounts是我在dealloc中发布的实例变量。我的问题是我是否需要在其他任何地方解除分配。可能在上面的getAccounts函数中,如果是这样的话。

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:2)

何时在目标c中发布实例变量?

当您拥有资源时,您需要释放它。现在你什么时候拥有资源 -

  • 如果你分配它,你就拥有它。
  • 如果你复制它就拥有它。
  • 如果你是新手,你就拥有它。 (相当于alloc / init)

在您的计划中,您需要发布 accountsselAccountsprocessor

答案 1 :(得分:0)

也许是因为您从未在代码中调用过对象的版本。只有在为对象调用release时才会调用Dealloc

[yourObject release];