它是内存安全的一段代码吗?

时间:2011-03-25 10:34:05

标签: objective-c memory-management

NSMutableArray *m_res = [NSMutableArray arrayWithCapacity:ticks];
double t = lo_t;
while (t <= hi_t) {
    [m_res addObject:[NSDecimalNumber decimalNumberWithDecimal:
                      [[NSNumber numberWithDouble:t] decimalValue]
                      ]];
    t += delta_t;
}

return [[NSArray arrayWithArray:m_res] retain];

它应该返回包含一些值的持久NSArray。我计划在不再需要时调用它。它是好的还是有一些bug,因为当我调用包含此代码的函数时,我的程序停止工作(这是一个内存问题而不是无限循环)。

1 个答案:

答案 0 :(得分:0)

代码安全(即不会崩溃)但最后一行不正确。 arrayWithArray 没有任何用处,而保留是泄漏。

应该是

return m_res;

如果你发生了撞车事故,原因就在其他地方。