Как же бесит устройство CoreData.
Задача - сохранить результат и тут же достать его из хранилища в одном и том же контексте. При последовательном запуске этих функций - нет гарантии, что вернётся сохранённый результат.
Кто как решает? Как обойти эту асинхронность?
Там ж есть fetched result controller, используй методы его делегата которые оповещают об изменении контекста