В моем проекте у меня есть два объекта: personEntity
& municipalEntity
. Они имеют много-много обратных отношений друг с другом. Я исполняю NSFetchRequest
на personEntity
, чтобы получить подробную информацию человека:Запросы на выбор вложений
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext
let personRequest = NSFetchRequest(entityName: "personEntity")
let personPred = NSPredicate(format: "surname = %@", "Smith")
personRequest.predicate = personPred
do {
let personsList = try context.executeFetchRequest(personRequest)
// this all clear enough up to this point
На данный момент, я пытаюсь гнездо второй, основывается FetchRequest
внутри первого. Этот запрос должен искать municipalEntity
в свойстве отношений peopleInMunicipality
, для объектов от personsList
.
for selectedPeople in personsList {
let municipalRequest = NSFetchRequest(entityName: "municipalEntity")
let municipalPred = NSPredicate(format: "peopleInMunicipality = %@", selectedPeople)
municipalRequest.predicate = municipalPred
do {
let municipalitiesWithResidentsCalledSmithList = try context.executeFetchRequest(municipalRequest)
И бац ... компилятор жалуется и предлагает мне нужно изменить две вещи в линии, ограничивающей второй предикат. Он предлагает вместо этого ...
let municipalPred = NSPredicate(format: "peopleInMunicipality = %@", argumentArray: selectedPerson as? [AnyOject])
Компилятор теперь счастлив, но когда я запускаю код, он падает с ошибкой EXC_BAD_ACCESS на секции кода предложил argumentArray:
. Любая идея, как я могу это исправить?
Может быть, я ошибаюсь, но если у вас есть много-ко-многим есть атрибут в каждом объекте со ссылкой на другое лицо. После того, как вы отфильтровали людей, вы можете получить связанные предметы 'communityEntity' из указанного атрибута каждого человека. – vadian
Это в значительной степени то, что я пытаюсь сделать. Если у объекта есть атрибут, я могу запустить предикат (как в первом цикле). Если свойство является отношением, то должен применяться тот же подход. Мне не хватает синтаксиса для сравнения объекта в отношении сущности с эталонным объектом. «Object =% @», возможно, неправильный подход. –
Чтобы быть ясным: объект имеет свойства. Свойство может быть атрибутом или отношением. Вадиан говорит об атрибутах и отношениях. – Willeke