部分使用的对象会导致内存泄漏吗?

时间:2012-02-08 01:20:26

标签: objective-c ios model-view-controller memory-leaks

我准备了一个用于存储从db检索的数据的类,并且假设我有10个vars。如果我将这个类重用于不同的视图并且每个视图将使用不同数量的变量,那该怎么办呢?

tableViewCell将弹出3个变量。 View1将弹出6个变量。 View2将弹出10个变种。

未使用的数据是否会导致内存泄漏?

2 个答案:

答案 0 :(得分:0)

只有在释放内存之前删除所有指针才会发生内存泄漏。如果你重用你的数据结构,你可能会有一些未使用的内存,但它不会是一个泄漏,除非你在指针消失时永远不会释放它(让你无法再次释放它)。

答案 1 :(得分:0)

未使用的变量与内存泄漏无关。你想看到内存泄漏吗?

- (void)leakABunchOfMemory {
    for (int i = 0; i < 1000000000; i++) {
        NSMutableString *usedButNotUsedCorrectly = [[NSMutableString alloc] initWithFormat:@"%d", i];
    }
}

那是内存泄漏。每个[NSMutableString alloc]创建一个对象,并且永远不会销毁任何对象,因为一旦循环的迭代结束,您就会丢失对它们的引用。他们只是继续存在和占用空间,就像基于文本的僵尸一样渴望生活的RAM。为避免Objective-C代码泄漏,请遵循memory management rules以及您使用的任何其他库的等效规则。

相关问题