Импорт мультиреляционных данных с MagicalRecord от magicpanda

Я хотел бы импортировать json-файл в свою базу данных SQLite-CoreData-Database с помощью MagicalRecord волшебной панды. Это содержимое моего json-файла:

{
 "title":"Gebratener Schweinebauch auf dänische Art",
 "subtitle":"Stegt flaesk med persillesauce",
 "preparation_time":"35 Min.",
 "preparation_subtitle":"bei 225°C, nicht vorheizen.",
 "components":[
  {
        "name":"Hauptgericht",
                "ingredients": [
       {
          "name":"1 kg geschälte und gekochte Kartoffeln"
       }
  ]
  }
 ]
}

я пытаюсь импортировать содержимое файла в следующую базовую модель данных: Изображение модели данных: http://twitpic.com/8fa0y9

я использую следующий код для импорта json-файла:

- (void)initializeRecipeDatabase {
NSString *resource = [[NSBundle mainBundle]     pathForResource:kRecipeInitialDatabaseContentFilename 
                                                                                                         ofType:kRecipeInitialDatabaseContentFileType];
NSError *parsingError = nil;
NSDictionary *result = nil;

if (NSClassFromString(@"NSJSONSerialization")) {
    NSInputStream *inputStream = [NSInputStream inputStreamWithFileAtPath:resource];
    [inputStream open];

    result = [NSJSONSerialization JSONObjectWithStream:inputStream options:0 error:&parsingError];
}
else {
    NSData *jsonData = [NSData dataWithContentsOfFile:resource];
    result = [jsonData objectFromJSONData];
}

[Recipe MR_truncateAll];
[[NSManagedObjectContext MR_defaultContext] MR_save];
[Recipe MR_importFromDictionary:result];
[[NSManagedObjectContext MR_defaultContext] MR_save];


}

Импорт работает без ошибок, но когда я проверяю содержимое базы данных SQLite, у меня есть две одинаковые записи в таблице ингредиентов:

Изображение содержимого базы данных: http://twitpic.com/8fa0k3

В настоящее время я беспомощен, чтобы решить эту проблему, и я был бы очень рад, если бы кто-то мог мне помочь.


person Sascha Held    schedule 03.02.2012    source источник


Ответы (1)


Вы обнаружили ошибку в процессе импорта. В настоящее время ожидается рассмотрение запроса на вытягивание, который решает эту проблему. У меня есть список ожидающих запросов на вытягивание, но вы можете заглянуть туда и посмотреть, поможет ли это вам на данный момент.

person casademora    schedule 03.02.2012
comment
Я попробовал изменения, сделанные с помощью фиксации # 8c0a084, но, похоже, это не решило мою проблему. Я все еще получаю эти две записи для Ingredient-Entity :( - person Sascha Held; 04.02.2012
comment
Я видел, что вы объединили фиксацию № 8c0a084 с мастером — я вытащил последнюю версию и проверил ее снова, ошибка с дубликатом Ingredient-Entry все еще существует. - person Sascha Held; 04.02.2012
comment
Я нашел решение этой проблемы самостоятельно, вы должны определить имя атрибута первичного ключа (который должен идентифицировать вашу сущность уникально) в разделе «Информация о пользователе» вашего атрибута отношения. - person Sascha Held; 09.02.2012
comment
Привет, Саша, у меня те же потребности, что и у тебя. Мне нужно импортировать данные из веб-сервиса, который я создал, и сохранить их в основную базу данных данных. Я только что нашел библиотеку MagicRecord. Не могли бы вы, если у вас есть время, скажите или покажите мне код, который вы использовали для вставки данных с использованием нескольких отношений? (Я не понял, как отношения должны работать с основными данными)? Спасибо... - person Stan92; 25.09.2012