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

发布于 2025-01-03 06:10:16 字数 170 浏览 1 评论 0原文

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

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

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

I have prepared a class for storing data retrieved from db, and let's say I have 10 vars in it. What if I will reuse this class for different views and each view will use a different quantity of variables.

tableViewCell will pop-up 3 vars.
View1 will pop-up 6 vars.
View2 will pop-up 10 vars.

Will the unused data cause memory leaks?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

祁梦 2025-01-10 06:10:16

仅当您在释放内存之前删除所有指向内存的指针时,才会发生内存泄漏。如果您重用数据结构,则可能有一些未使用的内存,但这不会是泄漏,除非您在指针消失时从未释放它(使您无法再次释放它)。

A memory leak only happens when you delete all pointers to the memory before freeing it. If you reuse your data structure, you might have some unused memory, but it won't be a leak unless you never free it when the pointers go away (leaving you no way to free it ever again).

花海 2025-01-10 06:10:16

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

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

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

Unused variables have nothing to do with memory leaks. You want to see a memory leak?

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

That's a memory leak. An object is created with every [NSMutableString alloc], and none can never be destroyed because you lose your reference to them as soon as that iteration of the loop ends. They just go on existing and taking up space, like text-based zombies that hunger for the RAM of the living. To avoid leaks in Objective-C code, follow the memory management rules, and the equivalent rules for any other libraries you use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文