лучший способ сохранить / загрузить данные игры iphone
-
08-07-2019 - |
Вопрос
Я работаю над игрой-головоломкой, игровой движок которой содержит сложную иерархию объектов, от игровых актеров до векторов и анимаций перехода. В зависимости от состояния игры они могут составлять от 10 до 1000 (в крайних случаях). Я откладывал момент, пока мне не пришлось работать над сохранением и загрузкой всего этого беспорядка, поскольку у меня нет опыта в этом, но теперь момент, которого я боялся, вот-вот наступит.
Хорошая ли идея использовать для этого NSKeyedArchiver? Его концепция кажется мощной. Таким образом, я мог бы перестроить состояния объектов, но включает ли это указатели между сохраненными объектами? И как это ведет себя с точки зрения производительности? Успеет ли система сохранить все эти объекты на диске при завершении работы приложения?
Решение 2
Я выбрал NSKeyedArchiver, который поддерживает ссылки между объектами. Смотрите здесь: Простой способ архивирования связанных объектов
Другие советы
NSKeyedArchiver довольно мощный, но он не позволит вам сохранять связи между объектами (если вы не добавите их самостоятельно после разархивирования). Если вы можете / должны хранить весь ваш набор данных атомарно, то, вероятно, NSKeyedArchiver - это то, что вам нужно, но с вашей стороны потребуется некоторая «регидратация», если есть что-то более сложное, чем отношения родитель-ребенок.
У нас сложная иерархия объектов данных, мы храним их в базе данных SQLite и перехватываем их при извлечении.