iOS内存管理一头雾水

标签 ios memory-leaks memory-management

我在 Utilities 类中有一个静态方法:

+ (Division *) getDefaultDivision
{
    Division *defaultDivision = [[Division alloc] init];
    defaultDivision.Id = 0;
    defaultDivision.name = @"Accounting";
    defaultDivision.slug = @"accounting";

    return defaultDivision;
}

在我的 ViewController 中我做了类似的事情:

Division *div = [[Division alloc] init];
div = [Utilities getDefaultDivision];

但是当我分析时,它显示“在第 x 行分配并存储到 defaultDivision 中的对象的潜在泄漏”。

如果我使用:

Division *defaultDivision = [[[Division alloc] init] autorelease];

它能用一次,但当我再次使用它时,它就崩溃了。

只是想知道在这里做什么才是正确的?

最佳答案

如果这是你的真实代码;

Division *div = [[Division alloc] init];
div = [Utilities getDefaultDivision];

您首先分配一个分区并将其保存在 div 中,然后您从 getDefaultDivision 获得一个新分区并将其存储在 div 中而不释放第一个分区。

关于iOS内存管理一头雾水,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8810741/

相关文章:

IOS 模拟器 SigKill

ios - 如何为 Auth0 Lock iOS SDK 指定自定义重置密码 URL?

iOS:数据类型分配的内存消耗

c++ - 使用运算符删除动态但仍然存在内存泄漏

perl - 了解开发::泄漏

c# - 为什么非托管内存可能占控制台应用程序使用的内存的 60% 以上?

ios - CoreData 添加对象

java - 循环大文件时内存不足处理 - Java

python - 如何诊断 Python 程序中潜在的内存泄漏?

c++ - 如何追踪 COM 内存泄漏