Я очень новичок в Core Data и все еще изучаю, как все это работает под капотом. Моя иерархия модели Core Data содержит профиль пользователя, который содержит набор из десяти различных уровней, использующих отношение один-ко-многим, причем каждый уровень содержит 30 различных головоломок, в которых также используется отношение один-ко-многим.
UserProfile (x1) -> Level (x10) -> Puzzle (x30), for a grand total of 311 objects per user profile
Модели уровней и головоломок используются для хранения прогресса пользователя, когда пользователь последовательно решает головоломки. Когда игра запускается в первый раз, она считывает все уровни и данные головоломок из списка и генерирует объекты Core Data (строки таблицы), которые будут использоваться для хранения прогресса пользователей во время игры. Другими словами, список объектов Core Data не увеличивается по мере того, как пользователь играет в игру, вместо этого он все создается в начале, а свойства объектов меняются по мере того, как пользователь играет в игру. Я подозреваю, что это неэффективно, но мои вопросы остаются прежними ...
- Когда я загружаю профиль пользователя из Core Data, будет ли также загружать в память все десять уровней, а также 30 головоломок для каждого уровня? Я спрашиваю, потому что мне, очевидно, не нужны все эти данные, если игрок играет только по одному уровню за раз.
- Если все данные уровня и головоломки загружаются в память при загрузке профиля пользователя, как я могу «лениво» загружать данные уровня и головоломки по мере необходимости?
- Когда я запускаю свою игру с помощью инструмента Allocations, он показывает, что он использует 6 МБ общей памяти, когда приложение полностью загружено и находится в главном меню. Очевидно, что использование памяти увеличивается по мере того, как пользователь углубляется в стек навигации. 6MB считается «большим» объемом памяти для только что запущенного приложения?
- Я заметил, что когда я закомментирую строку кода, которая загружает профиль пользователя из базовых данных, все еще используется 6 МБ. Означает ли это, что влияние, которое мои объекты базовых данных оказывают на память, незначительно?
Я прошу прощения, если это возмутительные вопросы, и я прошу прощения за их длину, и большое спасибо за вашу мудрость! Я возвращаюсь к документам по основным данным прямо сейчас, я просто решил опубликовать эти вопросы, продолжая самообучение.