Я ищу некоторую помощь в понимании NSPredicates и о том, как запросить CoreData. Вот что у меня есть:Как выполнить сложный запрос по отношению ко многим отношениям в CoreData
У меня есть два объекта: 1. Захват, представляющий «захват» некоторых данных, и он имеет множество отношений к 2. Идентификационные теги.
Я ищу по существу набор тегов «Identity» из определенного набора «Captures». то есть я хочу знать все уникальные идентификаторы имени «X» для захватов, которые также помечены идентификатором Int 'y'.
В стрижа я модель этого типа:
let captures: [Capture]
let identities = captures.flatmap({ $0.identities }).filter({ $0.id == "y" })
let uniqueIdentitiesOfParticularType: Set<Identity> = Set(identities.flatMap({ $0.name })
Любая помощь, пожалуйста?
Спасибо, Роб! Это привело меня к правильному пути. Думаю, я подумал, что может быть лучший способ сказать CoreData для получения этих объектов за один проход, поэтому я пытался выяснить, как сделать NSPredicates делать всю работу. – Bren
Просто помните, что Core Data не является базой данных. Это не произвольные записи. Это движок устойчивости объекта. Цель - поддерживать согласованный графический объект. «Извлечение» - это просто деталь реализации, потому что набор данных может не соответствовать всей памяти. Основная сила Core Data заключается в том, чтобы помочь вам перемещаться по сложной системе отношений, а не «запрашивать строки». Если у вас много независимых записей без многих фиксированных отношений, я часто нахожу базу данных лучшим инструментом. –
Я ценю, что ... для этого небольшого проекта, над которым я работаю, у меня есть набор данных, который хранится в JSON локально. CoreData просто предоставил хороший способ сериализации этих данных в соответствующие объекты, поддерживать то, как они связаны друг с другом, и взаимодействовать с ними. Я думаю, что, изучая это решение, я, возможно, пытаюсь переусердствовать, думая, что есть лучший способ взглянуть на все объекты, возвращенные приемом. – Bren