Я пытаюсь извлечь некоторые объекты, которые Im разбор из JSON, я не хочу сохранять их, пока некоторые действия выполняются пользователем, но я хочу их получить. Не сохранять их означает, что я не смогу получить их в другом приложении, но это нормально. Итак, я создаю NSManagedObject, как это.Извлечение NSManagedObject не сохранено
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:[self managedObjectContext]];
NSManagedObject *event = [[NSManagedObject alloc] initWithEntity:entityDescription insertIntoManagedObjectContext:[self managedObjectContext]];
А потом я пытаюсь получить его вот так.
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Event" inManagedObjectContext:[self managedObjectContext]];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entity];
NSPredicate *testForTrue = [NSPredicate predicateWithFormat:@"id_server == %@", aIdServer];
[fetchRequest setPredicate:testForTrue];
NSArray *arrayEvents = [[NSArray alloc]initWithArray:[[self managedObjectContext] executeFetchRequest:fetchRequest error:&error]];
id_server представляет собой уникальное значение, и он никогда не возвращает событие, что там на самом деле, потому что если я печатаю все «События» в CoreData это показывает событие с id_server.
Если я сохранить контекст:
NSError *error;
if (![[appDelegate managedObjectContext] save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
Он находит события, но я не могу принести события без сохранения контекста?
Благодаря
[EDIT]
Как я получить доступ к managedContext является следующее:
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext;
}
Я добавил метод, когда я получаю управляемыйконтекст. Это ленивая нагрузка, но на самом деле мне нужно что-то сделать с управляемым контентом, который в какой-то момент изменился, но я не могу понять, как и почему. Я также добавил setIncludesPendingChanges, но все равно он не находит событие. – subharb
Чтобы добавить колдовство к этому, если я выберу другой атрибут, например имя, он выберет соответствующее событие. – subharb
Можете ли вы проверить правильность установки свойства id_server класса Event? Также убедитесь, что «aIdServer», который вы тестируете в NSPredicate, не «nil». – tek3