Трудно дать фактическое число из-за всех внешних распределений, которые ОС делает от вашего имени в UIKit и OpenGL. Я пытаюсь сохранить свои собственные ассигнования около 30 МБ, с 50 МБ своего рода верхний предел. Я поднял его до 90 МБ, но на этом уровне меня сильно отбросили, так что, вероятно, это плохая идея, если задача, использующая всю эту память, не очень коротка.
Если вам нужно обойти текущую проблему, вы можете просто обнаружить проблемные устройства заранее и уменьшить разрешение графического движка при запуске. Вы можете получить точную информацию об устройстве или проверить масштабирование экрана (сетчатку) в сочетании с количеством ядер процессора и объемом оперативной памяти, чтобы определить, какой уровень качества использовать.
Я добился большого успеха, сократив использование памяти за счет использования сопоставленных файлов вместо загрузки данных в ОЗУ, и вы можете попробовать сделать это, если у вас большие объемы данных.
Также следите за утечками представлений / элементов управления из UIKit, так как они занимают много памяти и могут привести к тому, что их выбросят в случайное время. У меня был некоторый код, который пропускал дочерние представления от нескольких контроллеров представления. В конечном счете, эти утечки могут уничтожить мое приложение, хотя использование памяти моим приложением напрямую не отражало проблему.