2012-03-23 122 views
0

你好我在Objective-C内存管理方面有一个小问题。我们应该在dealloc方法中释放委托吗?

我知道如果一个属性被保留,我们应该在dealloc方法中释放它。例如:

@property (nonatomic, retain) NSString *title; 
在dealloc方法

-(void) dealloc 
{ 
    [title release]; 
    [super dealloc]; 
} 

但是,如果我们声明一个代理(使用分配)

@property (nonatomic, assign) id titleDelegate 

我们应该释放它的dealloc方法?

[titleDelegate release] 

在此先感谢您的任何提示。

+1

这里的解决方案是使用ARC和弱引用。 – 2012-03-23 12:50:32

+0

+1用于指向ARC。我总是使用它。但在我的情况下,我有一个项目已经写好,我正在解决一些内存问题。谢谢 – Youssef 2012-03-23 12:56:53

回答

1

不可以。你没有分配内存或保留,所以不要释放它。使它成为零。只有当你是它的所有者时,你才会释放内存。

0

您只需要发布您保留的内容。分配不会增加retainCount。所以,答案是否定的。

0

不需要,您不必释放它。你不拥有该对象

0

从未发布委托只要把它为零

相关问题