今までかなりこれを知らなくて苦労していました。
Cleaning Memory Footprint with the Autoreleasepool in Swift | by Oğuz Öztürk | Mediate Labs | Medium
↑こちらのサイト様によりますと
For文やwhile文の中で作成されたオブジェクトはforループwhileループを抜けるまで
削除されないようです。
そのためfor文が動いている間はメモリが上昇し続けます。
これを防ぐために使うのが
autoreleasepool{}
for文の中身をこれで括れば
ちゃんとループ中でもメモリを解放するようになってくれます
for i in 0..<10{
autoreleasepool {//重い処理,画像加工など}
}
私はPHAssetからUIImageに高画質で変換する処理をfor文でループさせていたのですが、autoreleasepool{}を使わないと100枚変換したらメモリが2GBを超えてiPhoneが落ちてしまていました。
autoreleasepool{}を使うと最高でも200MBは超えなくなりましたね。