1

我试图了解 Xcode 中的分配工具告诉我什么。我正在使用 ARC。我的主从应用程序的 DetailViewController 中有以下方法:

- (FFMasterViewController*) masterViewController
{
    return (FFMasterViewController*)[[self.splitViewController.viewControllers objectAtIndex:0] topViewController];
}

- (SQLDataController*) sqlDataController
{
    return self.masterViewController.dataController;
}

第一种方法似乎很好。但根据 Allocations 的说法,第二个导致 100.0% 的内存泄漏。dataController 是我的 MasterViewController 中的一个 ivar。我编写这两种方法是为了方便从 DetailViewController 中的方法引用 MasterViewController 和 DataController。我可以显示更多代码,但我不确定接下来要查看什么来查找泄漏。我不明白如何在一种情况下返回指针很好,但在另一种情况下会导致泄漏。

4

1 回答 1

2

它告诉您泄漏的分配位置,而不是导致泄漏的原因。

由于您使用的是 ARC,因此您很可能在某处有一个保留周期。

如果您查看分配工具,您可以打开“跟踪引用计数事件”和“仅跟踪实时分配”,然后您可以深入了解被泄漏对象的所有保留/释放事件。

于 2013-06-26T23:37:23.173 回答