objective-c中release和dealloc之间的差异

hha*_*fez 39 memory objective-c

当deallocing一个refrence我见过releasedealloc使用例如

-(void)dealloc
{
  [foo release];
  [nar dealloc];

  [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

我的问题是何时release使用以及何时dealloc使用?

谢谢

Chu*_*uck 54

dealloc除非[super dealloc]在课程dealloc方法结束时再打电话.该release方法放弃对象的所有权.当Cocoa对象不再拥有任何所有者时,它可能会被释放 - 在这种情况下,它将自动发送一条dealloc消息.

如果您要编写Cocoa程序,则需要阅读" 内存管理指南".一旦你克服了最初的驼峰,这是非常简单的,如果你不明白该文件中的内容,你会有很多微妙的错误.

  • 不仅没有必要,在dealloc方法中调用[self dealloc]会创建一个无限循环. (6认同)