У меня есть простая XCDataModel, которая содержит одну сущность с одним атрибутом. По сути, я сохраняю серию Dates.
Теперь я знаю, что добавляю NSDates правильно, потому что я запускаю запрос на выборку после их добавления и просматриваю результаты следующим образом:
for (NSManagedObject *info in fetchedObjects) {
NSLog(@"Name: %@", [info valueForKey:@"attribute"]);
}
И каждый дополнительный NSDate учитывается. Пример из журнала:
2012-06-19 12:40:38.531 Arts Days[47194:16103] Name: 2013-03-27 04:00:00 +0000
2012-06-19 12:40:38.531 Arts Days[47194:16103] Name: 2013-03-01 05:00:00 +0000
2012-06-19 12:40:38.532 Arts Days[47194:16103] Name: 2013-01-01 05:00:00 +0000
Теперь, когда я пытаюсь удалить объект из Core Data, это оказывается безуспешным (путем выполнения той же выборки и повторного просмотра результатов).
Вот добыча:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:366];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
NSError *error = nil;
[fetchRequest setSortDescriptors:sortDescriptors];
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *object in fetchedObjects) {
if ([[object valueForKey:@"date"] isEqualToDate:date]) {
[managedObjectContext deleteObject:object];
}
}
if (![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
Кроме того, NSLog с неразрешенной ошибкой содержит ноль-ноль...
Вы знаете, что я делаю неправильно?
fetchRequest
, аfetchObjects
пусто (на самом деле, ноль). - person gschandler   schedule 19.06.2012attribute
(которое похоже на какое-то имя). Вы пытались зарегистрировать даты, которые у вас есть в каждой записи, чтобы подтвердить действительные данные? - person gschandler   schedule 19.06.2012self.managedObjectContext
, кроме случаев, когда вы вызываетеdeleteObject
иsave:
. Может быть, вы используете локальный экземпляр, который недействителен (ноль)? - person gschandler   schedule 19.06.2012