1

Мое главное сущность называется серией. Серия имеет отношение «один ко многим» к объекту под названием «Раунды», связанным по-одному (упорядоченно), а у Раундов снова есть NSOrderedSet со снимками. Объект Shots имеет атрибут, называемый score, который является Integer.CoreData. Fetchrequest все объекты с отношениями

xcdatamodeld

То, что я хочу, чтобы получить все баллы от лица Shots, принадлежащих к определенной серии.

let shots = currentSeries.rounds.shots as [Shots] 

не дает мне все снимки перебрать, из-за messeage ошибки: «Значение типа„NSOrderedSet“не имеет ни одного члена:„выстрелы“». Так или иначе, мне нужно установить предикат для объекта «Shots», который фильтрует все снимки, принадлежащие определенному объекту «Series». Сущность Серии не имеет уникального идентификатора, но я думаю, что можно было бы использовать временную метку атрибут для выделения определенной «серии». Но опять же, я хочу, чтобы все объекты «Shots», связанные с этой «серией».

Мне может понадобиться помощь в разработке CoreData или, по крайней мере, о том, как выполнить мои усилия.

ответ

1

Один из способов получить все Shots для данного Series бы принести с предикатом:

let fetch = NSFetchRequest(entityName:"Shots") 
let fetch.predicate = NSPredicate(format:"rounds.series == %@", currentSeries) 
let currentSeriesShots = try! context.executeFetchRequest(fetch) as! [Shots] 

(Вы должны добавить надлежащую обработку ошибок). Нет необходимости использовать уникальный идентификатор - CoreData будет использовать свой собственный (внутренний) идентификатор для объекта currentSeries, чтобы определить, какой из Shots для возврата.

+0

Отлично! Мне не приходило в голову, что я тренируюсь снизу и вверх. Также спасатель жизни, что внутренний идентификатор прерывает необходимость в уникальном идентификаторе для верхнего объекта. Благодаря :-) –