0

关于托管对象的快速问题。

我创建了一个带有托管对象的数组(在对象 1:TableViewConbtroller 中),并将其中一个对象传递给另一个类/对象(对象 2:TableCell)。

原始数组仍应保留在原始调用者类中。然后对象 2 被释放,这是否意味着数组中的特定项也被释放,因为对象 2 中对它的引用也被释放了?

当我收到“对象已释放”错误时,我试图更好地了解如何使用 ManagedObjects。

[编辑] 经过一些实验后,我遇到了以下场景:我有主 AppDelegate。在另一个类中,我创建了一个 AppDelegate 来获取 ManagedObjectContext。

appDelegate = (iDomsAppDelegate *)[[UIApplication sharedApplication] delegate];
[self setContext:[appDelegate managedObjectContext]];

当类完成时,我释放它,类“appDelegate”中的变量也被释放。但随后 ManagedObjectContext 被关闭,显然任何未来使用它的尝试都会导致崩溃。那么我应该不发布 appDelegate 吗?

这涉及到与上述相同的问题,即在从另一个类使用对象的情况下何时以及如何释放。我认为一种说法是,如何知道你什么时候拥有一个对象,什么时候不拥有。

4

1 回答 1

0

UIApplication 保留您的应用程序委托,因此在视图控制器的 dealloc 方法中释放它不会释放应用程序委托。

于 2010-12-24T20:32:24.527 回答