2013-03-21 2 views
6

Правильно, просто уберите этот вопрос в надежде найти ответ.Совершенствование моего MagicalRecord import

Я следил за этим блогом, чтобы получить мой импорт.

http://www.cimgf.com/2012/05/29/importing-data-made-easy/

мне удалось получить импорт прекрасно работает, когда JSON был в форме ...

[ 
    { 
     Name: "John Smith", 
     Id: 123, 
     Company: 
     { 
      Name: "Apple", 
      Id: 1 
     } 
    } 
] 

т.е. когда JSON содержит реальный объект.

Импорт найдет объект и обновит существующий объект, а не создаст новый.

Однако, некоторые из JSON у меня есть формат ...

[ 
    { 
     Name: "John Smith", 
     Id: 123, 
     CompanyID: 1 
    } 
] 

и независимо от того, что я делаю, это создает дубликаты.

Возможно, кто-нибудь скажет мне, что настроено в Magical Record userinfo, чтобы заставить это работать.

+0

Я опробовал образец кода для вашего вопроса, пожалуйста, посмотрите, полезно ли это. – Anupdas

+0

Почему используются две разные модели JSON. Если это оптимизация, и вы знаете, что объект компании уже существует, вы можете использовать одну и ту же структуру, сохраняя только этот «идентификатор»? – Anupdas

+0

Пример только для этого вопроса, а не для моего приложения. В моем приложении нет объекта, называемого Person или Company. Две разные структуры относятся к совершенно другим объектам в реальном приложении. Я просто пытаюсь заставить обоих работать. – Fogmeister

ответ

6

Спасибо за ваш вопрос. Я смог успешно использовать функцию импорта MagicalRecord, хотя я использовал некоторое время. Я смог найти решение проблемы.

Я предполагаю, что MagicalRecord делает это соглашением использовать personID для Person и companyID для компании. Поскольку это под нашим контролем, это просто предостережение. Пожалуйста, поправьте меня, если я ошибаюсь. Сразу после удаления подчеркивания из свойств объектов он больше не разбился.

Я полностью протестировал ниже упомянутое решение, пожалуйста, просмотрите demo project code, который я использовал. Поэтому не стесняйтесь задавать вопросы.

Company 
------------- 
companyID (unique) //Removed underscore from the property 
companyName 
------------- 
persons 

Person 
------------- 
personID (unique) //Removed underscore from the property 
firstName 
lastName 
------------- 
company 

Для этого формата:

{ 
     Id: 1, 
     FirstName: "John", 
     LastName: "Smith" 
     Company : 
     { 
      Id: 123 
     } 
    } 
} 

После должно быть предусмотрено в USERINFO для отношений компании лично

mappedKeyName : Company (Как используется в ключе JSON)

relatedByAttribute : companyID (Уникальное название собственности в компании)

Для этой модели:

{ 
    Id: 1, 
    FirstName: "John", 
    LastName: "Smith" 
    CompanyId: 123 
} 

mappedKeyName : CompanyId (Как используется в ключе JSON)

relatedByAttribute : companyID (уникальное имя свойства в компании Entity)

+0

Спасибо. Я буду тестировать, когда вернусь на свой компьютер. – Fogmeister

+0

@Fogmeister Помогло ли вам импорт? – Anupdas

+0

Просто вернемся к нему сейчас. Сообщите мне: D – Fogmeister