Я сохраняю данные в свои базовые данные в фоновом потоке:
class CoreDataHelper: NSObject {
static let sharedInstance = CoreDataHelper()
private func managedObjectContext() -> NSManagedObjectContext {
return (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
}
func saveNewFood(foodName: String) {
let context = managedObjectContext()
let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
privateContext.persistentStoreCoordinator = context.persistentStoreCoordinator
privateContext.perform {
let food = Food(context: context)
food.name = foodName
food.isInTheFridgeNow = true
do {
try context.save()
} catch let error {
print(error.localizedDescription)
}
}
}
}
И у меня есть функция, которая извлекает данные в главном потоке:
func fetchFoodsThatsInTheFridgeNow() -> [Food] {
let fetchRequest: NSFetchRequest<Food> = Food.fetchRequest()
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
var foods: [Food] = []
fetchRequest.predicate = NSPredicate(format: "isInTheFridgeNow == YES")
fetchRequest.sortDescriptors = [sortDescriptor]
do {
foods = try managedObjectContext().fetch(fetchRequest)
} catch let error {
print(error.localizedDescription)
}
return foods
}
После сохранения новой еды я хочунемедленно увидеть список новых продуктов в моем ВК (не закрывая мое приложение и не запуская его снова).Как это реализовать?