0

对 iPhone 应用程序中的内存管理仍然很陌生,我有一个新手问题。假设我有一些使用 AppDelegate 属性的方法。在这些方法的开头,我得到了这样的委托:

// Get delegate
MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

我是否需要在方法结束时执行某种释放(我正在考虑在每个方法的末尾添加 [delegate release] 像这样的)。

一般来说,我们是否必须在方法结束时释放在该方法中创建的每个对象变量(NSString、NSData、...)?

非常感谢,卢克

4

2 回答 2

1

简单的规则:

如果当您获得对对象的引用(在本例中为 appDelegate)时,您没有调用alloc该对象,那么您不需要释放。如果您确实调用alloc了您提供的那行代码,那么您会想要调用[delegate release];

于 2010-06-29T13:36:51.257 回答
1

不,这只是对您的委托的引用,它很可能被您程序的其他部分使用。

于 2010-06-29T13:37:08.437 回答