为什么这个功能导致泄漏?

时间:2013-06-26 22:29:25

标签: objective-c automatic-ref-counting memory-leaks

我正在试图理解Xcode中的Allocations工具告诉我的是什么。我正在使用ARC。我在master-detail应用程序的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。我可以显示更多代码,但我不确定接下来要查看泄漏的内容。我不明白如果在一个案例中返回指针是好的,但在另一个案例中返回会导致泄漏。

1 个答案:

答案 0 :(得分:2)

告诉你在哪里分配了泄漏,而不是导致泄漏的原因。

由于您正在使用ARC,因此您可能会在某处保留周期。

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