Сохранение сложного объекта в Swift с использованием NSUserDefaults

Я хочу сохранить свои игровые данные с помощью NSUserDefaults, что кажется самым простым способом.

Объекты, которые я хочу сохранить, действительно сложны, то есть у них есть куча подклассов, у которых есть куча подклассов и т. д. Насколько мне известно, NSUserDefaults хранит только примитивные типы данных. Приведение объектов к NSData или чему-то еще не работает. Реализация протокола NSCoding — огромная проблема с такими сложными классами.

Каков самый простой способ добиться хранения таких объектов? Должен ли я использовать что-то другое, кроме NSUserDefaults?


person Johannes    schedule 13.11.2014    source источник
comment
Используйте sqlite и храните данные как BLOB.   -  person Kampai    schedule 13.11.2014


Ответы (1)


NSUserDefaults предназначен не для этого, и, как вы знаете, поддерживаются только несколько примитивных типов.

Вы должны быть профессионалом и выполнять работу, в данном случае это означает внедрение NSCoding и архивирование в файл с NSArchiver.

person zaph    schedule 13.11.2014