В моем проекте у меня есть некоторые объекты, которые я показываю с сервера, позволяет называть их Foo's. Когда я получаю фид Foo, я разбираю их в подкласс NSMutableDictionary под названием RemoteFoo и передаю эти объекты RemoteFoo по всему окну для отображения данных.Abstracting NSManagedObject и NSDictionary
Если пользователь в конечном итоге хочет загрузить RemoteFoo, я затем создаю объект NSManagedObject с основными данными, называемый Foo, и создайте его, используя значения из RemoteFoo. Все это работает.
Проблема заключается в том, что если я хочу, чтобы метод работал на RemoteFoo и Foo, я должен дублировать его как в RemoteFoo.m, так и в Foo.m. Кроме того, мое приложение, если полный дублирующих инициализации как:
- (id)initWithFoo:(Foo *)foo;
- (id)initWithRemoteFoo:(RemoteFoo *)foo;
Как я могу избежать всего этого кода дублирования в то же время отделения временного удаленного RemoteFoo от сущностей Foo ядро-данных, которые представляют Foo пользователь накопил на местном уровне?
RemoteFoos постоянно изменяются, хотя, и предлагается в различных списках с сервера несколькими способами, через несколько точек в приложении , Если я сохраню их все, мне придется постоянно обновлять каждую запись Foo, которую у меня есть, поскольку данные для каждого RemoteFoo могут измениться. Я думаю, что это добавит много накладных расходов на производительность моего приложения. Не говоря уже о тысячах RemoteFoo, но только десятки Foo, которые пользователь загрузит. – coneybeare
Это определенно кажется самым простым способом ... как вы думаете, будет ли это удар производительности, используя его, как я описываю в вышеупомянутом комментарии? – coneybeare
Основные данные были сильно настроены на производительность. Вы не можете быть более эффективными с вашим доморощенным решением, чем использовать CoreData. – Jaanus