Базовые данные действуют как обертка для базового хранилища данных, поэтому не стоит начинать обход базовых данных. Кроме того, основные данные добавляют дополнительную информацию в вашу БД, поэтому прямой доступ к БД может (или может в будущем) вызвать проблемы.
Чтобы удалить все записи через основные данные, у меня есть следующее:
+ (void) deleteAll {
NSManagedObjectContext *managedObjectContext = [(myAppDelegate*)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:[[self class] description] inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
for (NSManagedObject *managedObject in items) {
[managedObjectContext deleteObject:managedObject];
NSLog(@"%@ object deleted",[[self class] description]);
}
}