这里讨论的Runloop指的是运行App之后自动创建的Runloop。
而自动释放池指的是Runloop自动创建的自动释放池。
话不多说,一张图搞定。
我们也可以手动创建自动释放池以实现优化内存空间的目的。
for (int i = 0; i < largeNumber; ++i) {
NSString *str = @"Hello World";
str = [str stringByAppendingFormat:@" - %d", i];
str = [str uppercaseString];
}
上面代码如果传入的参数很大,那么会占用大量的内存,所以我们可以将代码块手动放入自动释放池,代码如下。
for (int i = 0; i < largeNumber; ++i)
{
@autoreleasepool
{
NSString *str = @"Hello World";
str = [str stringByAppendingFormat:@" - %d", i];
str = [str uppercaseString];
}
}