【发布时间】:2009-08-26 16:46:26
【问题描述】:
我有一个迭代大约 500 次的紧密循环。在每次迭代中,它都会创建一些 NSDecimalNumber 对象来做一些算术运算。
示例 - 此代码 sn-p 在 for 循环中。 -decimalNumberByAdding: 方法创建一个新的 NSDecimalNumber 实例并自动释放它。
resultDecimalNumber = [resultDecimalNumber decimalNumberByAdding:anotherDecimalNumber];
所以让我做对了:如果循环很大,我会收集数千个 NSDecimalNumber 对象,这些对象等待整个循环完成并返回方法,以便在长时间等待后自动释放。
如何防止内存溢出?我一直尝试使用非自动释放的对象,但在这种情况下,我似乎不得不忍受它们。
想象一下这是我的循环:
for(i=0, i<500, i++) {
resultDecimalNumber = [resultDecimalNumber decimalNumberByAdding:anotherDecimalNumber];
}
我必须在那里添加什么?我必须在循环内创建一个自动释放池并将其排空吗?这有意义吗?
【问题讨论】:
标签: iphone cocoa-touch memory-management uikit