@autoreleasepool {
for (long i = 0; i < 100000000000; i++) {
Person *per = [[Person alloc] init];
[per autorelease];
}
}
如图所示:上述程序是否存在问题,请指明原因?
@autoreleasepool {
for (long i = 0; i < 100000000000; i++) {
@autoreleasepool {
Person *per = [[Person alloc] init];
[per autorelease];
}
}
}
<span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif;">
</span>
问题原因:因为循环次数非常多,但是内存一直没有被释放,造成内存堆积
解决方案:在循环内部加一个自动释放池,使得每次循环后都对内存进行释放.