Если вы хотите сделать это в общем виде, вы можете написать рекурсивный метод serializedDictionary
(либо в подклассе NSManagedObject, либо в категории), который:
- Создает пустой NSMutableDictionary.
- Для каждого свойства добавляет ключ и значение в словарь.
- Для каждого отношения добавляет имя отношения в качестве ключа, а затем вызывает
serializedDictionary
объекта и добавляет его в качестве значения. Если это отношение ко многим, вам придется поместить эти значения в NSArray.
Обратите внимание, что если вообще возможно связать дочерний объект обратно с родителем (что очень возможно, если у вас есть обратные отношения, как рекомендует Core Data), вам нужно будет либо внести белый список в отношения, которые вы сохраняете (проще) или передать набор, чтобы отследить, какие объекты уже были сериализованы, чтобы вы больше не кодировали их (сложнее, я не рекомендую этого).