Искренне рад за Вас, а у меня сон нарушен, если в проекте, даже задеплоенном, имеются недостатки, которые я в состоянии исправить, опять же руководствуясь чувством меры.
Не нужно обращаться к какому-то конкретному контексту внутри CoreDataManager, пользователь этого мини-фреймворка должен сам решить какой контекст для запроса ему использовать.
Можно написать в CoreDataManager небольшой хэлпер:
- (NSManagedObjectContext*)getCurrentThreadContext{
NSManagedObjectContext *result = nil;
if ([NSThread isMainThread])
result = _defaultManagedObjectContext;
else
result = [self getContextForBGTask];
return result;
}
Если элементов настолько много, что начинает тормозить UI на удалении, то проще на выходе уходить в другой поток, брать с него контекст, фетчить ненужные объекты и удалять их.
P.S. NSManagedObjectContact — опечатка.
Можно написать в CoreDataManager небольшой хэлпер:
И метод для фетча:
Тогда вызов из любого участка кода будет сводиться к следующему: