Core Data: как выполнить отбор в predicate по objectID

swift
coredata

#1

Добрый день. Помогите разобраться с отбором в Core Data по objectID.
В таком формате, здесь и найденном, результат пустой:

fetchRequest.predicate = NSPredicate(format: "self IN %@", [taskObj.objectID])

Без предиката или с предикатом по другим свойствам нормально запрос выполняется, все отображается. Разные варианты предиката тоже перепробованы, и также не срабатывают, например:

"self = %@", taskObj.objectID
"self == %@", taskObj.objectID

Прошу - помогите, куда искать. :expressionless:


#2

а так NSPredicate(formate: “objectID == %@”, taskObj.objectID) не пробовали?
Или по какому полю вы сравниваете?


#3

Благодарю за ответ. С предикатом было все нормально, проблема оказалась в контекстах. Привожу к текущему контексту через

let taskCurrentContext = viewContext.object(with: task.objectID)

Можете, пожалуйста, прокомментировать насколько это адекватное решение, и как выяснить, почему это оказывается из другого контекста :pray:.
task был создан ранее, а viewContext в ленивой переменной.


#4

thanks for the awesome information.