Трудно сказать конкретные различия в использовании памяти с вашей моделью в разных версиях iOS. По моему опыту, хранение изображений в основном хранилище данных работает не особенно хорошо. Как правило, вы хотите данные изображения в памяти только при необходимости. Каждая из ваших категорий содержит ~ 4-7 МБ данных изображения, поэтому вам не понадобится слишком много категорий, прежде чем вы столкнетесь с проблемами. То, что я сделал в своем приложении, - это сохранение данных изображения на диске и сохранение имени файла в магазине. Изображение загружается только при необходимости для отображения, и оно высвобождается, когда больше не нужно. Это делает магазин маленьким, а выборки быстрыми.
Если вы хотите сохранить данные изображения в магазине, вы должны оптимизировать их как можно лучше. Сконфигурируйте все ваши запросы на выборку, чтобы получить все свойства, кроме данных изображения, чтобы при возникновении ошибки в изображении возникали ошибки. Вам также необходимо убедиться, что данные изображения возвращаются в состояние сбоя, когда в этом нет необходимости.
РЕДАКТИРОВАТЬ: больше информации о том, почему хранение данных изображения в базовых данных плохо
Другая проблема с использованием основных данных для хранения данных изображений заключается в том, что загрузка и сохранение данных, даже если они выполняются только при необходимости, занимают нетривиальное время и блокируют ваш основной поток во время загрузки. Где бы вы ни хранили данные изображения, вы хотите загружать их из фона. Это просто, если вы используете хранилище файлов. При использовании основных данных реализуйте логику загрузки / сохранения фонового изображения, которая создает новый контекст, загружает / сохраняет данные изображения. При загрузке необходимо передать данные в основной поток, чтобы можно было создавать / отображать UIImage.