Должен ли я создать подкласс NSManagedObject или нет? - PullRequest
1 голос
/ 08 января 2011

Я потратил несколько дней на изучение и написание NSCoding и, наконец, все заработало. Однако архивирование и разархивирование (довольно сложного) графа объектов заняло очень много времени, что недопустимо. Пройдя некоторое время в Интернете, я думаю, что лучше использовать базовые данные.

Вы рекомендуете: 1) мне переписать все мои классы как подклассы NSManagedObject или 2) я должен создать переменную экземпляра NSManagedObject в каждом из моих классов, чтобы любые изменения в классе также обновляли его представление основных данных? Выполнение любого из этих способов потребует значительных изменений в существующих классах, и я думаю, что мне придется обновить множество случаев модульных тестов, если это изменит способ инициализации классов.

Что вы рекомендуете? Я действительно не хочу снова идти по неверному пути ...

Спасибо!

1 Ответ

2 голосов
/ 08 января 2011

Я бы порекомендовал 1), если вы используете Core Data.

2) не имеет особого смысла. Например, скажем, A* a1 и A* a2 относятся к одному и тому же B* b. Если A и B являются подклассами NSManagedObject, это отношение может быть легко сохранено и затем извлечено из файла. Но если A и B имеют NSManagedObject экземпляров в качестве иваров, как вы поддерживаете эти отношения, которые два A ссылаются на один B? Вы будете вынуждены написать множество клейких кодов, которые в основном предоставляются API-интерфейсами Core Data.

Если вы решите использовать Базовые данные, один очень важный совет, который я могу дать, - внимательно прочитать документацию Apple очень , очень с самого начала и до конца, и сопротивляться призываю писать коды с первого дня. Базовые данные - это довольно большой набор API, и хорошее понимание всей структуры перед началом написания кодов сэкономит вам много дней спустя.

...