Мне удалось предварительно заполнить базовую модель данных, состоящую из одного объекта со многими атрибутами через файл JSON.JSON to Core Data Pre Заполнение дополнительных объектов
Затем я добавил вторую сущность и столкнулся с проблемами при заполнении этой сущности одним и тем же файлом JSON. Поэтому я думал, что создам другой файл JSON для предварительного заполнения второго объекта, но это, похоже, не работает.
код ниже, что ив пытался использовать:
//Below is the code for the first entity
NSString* dataPath = [[NSBundle mainBundle] pathForResource:@"Exercises" ofType:@"json"];
NSArray* Exercises = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:dataPath]
options:kNilOptions
error:&err];
NSLog(@"Imported Exercises: %@", Exercises);
[Exercises enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
Exercise *exercise = [NSEntityDescription
insertNewObjectForEntityForName:@"Exercise"
inManagedObjectContext:context];
exercise.tag = [obj objectForKey:@"tag"];
exercise.name = [obj objectForKey:@"name"];
exercise.type = [obj objectForKey:@"type"];
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
}];
//Below is the code for the second Entity
dataPath = [[NSBundle mainBundle] pathForResource:@"Weights" ofType:@"json"];
//Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
NSArray* Weights = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:dataPath]
options:kNilOptions
error:&err];
NSLog(@"Imported Weights: %@", Weights);
[Weights enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
Weight *weight = [NSEntityDescription
insertNewObjectForEntityForName:@"Weight"
inManagedObjectContext:context];
weight.weight = [obj objectForKey:@"weightEntry"];
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
}];
Был бы признателен за любую помощь. Thank you
В Каким образом это не сработало? Какая часть не удалась? Что случилось, чего вы не ожидали? –
В чем была проблема? Что произошло, когда вы пытались использовать код? (в стороне: также необычно сохранять после каждой отдельной вставки, но я думаю, что вы отлаживаете?) – Tommy
отредактировал ошибку, полученную в вопросе выше. – user2512523