我在实用程序类中有一个静态方法:

+ (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];


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

09-30 11:54