Существует базовая модель данных с двумя объектами i мое приложение iOS.iOS несколько разрешений для одного управляемого объектаОбъект
Entity: Unit/Атрибуты: unit_name - NSString
- >> Отношение к Exercise
(one to many
)
Entity: Упражнение/Атрибуты: exercise_name - NSString.
Таким образом, один unit
может иметь много exercises
.
В моем контроллере просмотра таблицы доступны все exercises
. (Таким образом, в первый раз, я сделать выборку запроса на Exercise
сущности и managedObjectContext
точки к этой сущности.
Если я хочу, чтобы спасти "NEW"
unit
с exercises
сохранения функция не работает. Eсть . нет ошибки на всех, но unit
таблица пуста
Здесь пока код для функции сохранения:
Units *newUnit = [NSEntityDescription insertNewObjectForEntityForName:@"Units" inManagedObjectContext:[self.coreDataHelper managedObjectContext]];
newUnit.unit_name = unitTextField.text;//Attribute
newUnit.exercises = exerciseSet;//Relationship (NSSet)
NSError *error = nil;
if (![[self.coreDataHelper managedObjectContext]save:&error]) {
NSLog(@"There was an error! %@", error);
}
else {
NSLog(@"Success!");
}
Похоже, что managedObjectContext
еще указывает на объект Exercise
. (Поскольку он был впервые инициализирован этим объектом) coreDataHelper
имеет NSPersistentStoreCoordinator
, NSManagedObjectContext
, NSManagedObjectModel
и некоторые способы чтения и удаления.
Спасибо за помощь!
У вас есть опечатка или у вашего кода есть «Единицы» в методе insertNewObjectForEntityName, в то время как вы сказали, что ваше лицо является Unit? – rdelmar
Любой объект будет сохранен, содержащий контекст. Убедитесь, что self.coreDataHelper не равен null и что вы правильно передаете это текущему контроллеру. –