質問: これ以外の点でiOS側からプロセスを止められないためにすべき対策があればご指摘くださると幸いです。今までiOSのプログラムを書いていて、あまりそのようなケースにあたったことがなく、また入門書などでもあまり見ない話題です。 なお、その相談してきた人の作っているアプリはカメラから画像を取得して処理するものです。画像のマッチングなどに多量のデータをメモリに持つ必要があるとのことです。 よろしくおねがいします。
回答: 100MB超のデータというのがどういうものなのか、どこで何をやってる時に Kill されているのかがわからないので、大量データをループで処理している最中に Kill されるというケースについてのお話です。 大量のデータをループで処理されるような場合、ループ内の処理を「autoreleasepool ブロックで囲む」のが定石かと思います。 使用言語が ObjCなのかSwiftなのかわからないのですが、ObjCなら ``` while true { @autoreleasepool { // 処理 } } ``` Swift なら ``` while true { autoreleasepool { // 処理 } } ``` です。