В моем проекте я вхожу в те же объекты в двух разных объектах в одной и той же модели данных с такими же MOC и Persistence Store. Я не хочу дублировать объект, потому что я собираюсь изменить (удалить) объекты из первого объекта. Мой вопрос: как я собираюсь извлечь объекты из другого объекта? Я должен иметь разные хранилища сохранения и MOC? Ну, я уже набрал объекты, но дал мне нулевое значение и разбился, сказав, что объект не может быть нулевым значением.Извлечение объектов из двух разных объектов
Я думаю, что значения не сохраняются в основных данных. Ниже строки кода, который я использовал для хранения значений в CoreData
CommonEvent *commonEvent = (CommonEvent *)[NSEntityDescription insertNewObjectForEntityForName:@"CommonEvent" inManagedObjectContext:_managedObjectContext];
[commonEvent setValue:number forKey:@"commonNumber"];
[commonEvent setValue:name forKey:@"commonName"];
Ниже приводится строка кода для извлечения основных данных формы данных
CommonEvent *event;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"CommonEvent" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// define a sort descriptor
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc]initWithKey:@"commonName" ascending:YES];
NSSortDescriptor *numberDescriptor = [[NSSortDescriptor alloc]initWithKey:@"commonNumber" ascending:YES];
NSArray *scArray = [[NSArray alloc]initWithObjects:nameDescriptor,numberDescriptor, nil];
// give sort descriptor array to the fetch request
fetchRequest.sortDescriptors = scArray;
// fetch all objects
NSError *error = nil;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
NSLog(@" we have a problem: %@", error);
}
NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
NSLog(@" %@ %@ for index:%d", [event.commonNumber description],[event.commonName description], indexPath.row); // It shows that object values are null
// display all objects
for (CommonEvent *event in fetchedObjects) {
[mutableArray addObject:[event.commonNumber description]];
//
NSLog(@" %@ %@ for index:%d", [event.commonNumber description],[event.commonName description], indexPath.row);
}
Ваш вопрос очень трудно понять. Но я не вижу никакого вызова для сохранения данных в любом месте кода, который вы опубликовали. –
Извините, что ... Я сохраняю свои данные в основных данных, используя следующий код. CommonEvent * commonEvent = (CommonEvent *) [NSEntityDescription insertNewObjectForEntityForName: @ "CommonEvent" inManagedObjectContext: _managedObjectContext]; [commonEvent setValue: number forKey: @ "commonNumber"]; [commonEvent setValue: name forKey: @ "commonName"]; – GameBegins
Вы включили это в свой вопрос, но это не сохраняет данные. Чтобы сохранить данные с помощью Core Data, вам необходимо вызвать '- [NSManagedObjectContext save:]'. –