В моем приложении у меня есть два объекта: Сделка и адрес. Они связаны через отношения «многие ко многим». Объект Address имеет много свойств - широта и долгота являются двумя из них. Можно ли получить все объекты Сделки вместе со своими связанными объектами Адреса, чтобы получить только определенные свойства объектов Address (широта и долгота)?Как получить определенные свойства связанного объекта?
ответ
Если я правильно понимаю, вы не хотите фильтровать результаты своей выборки. Вы хотите все сделок, а затем просто подмножество атрибутов связанных адресов.
Непонятно из вашего вопроса, как вы хотите использовать эти результаты. Связать ли атрибуты объекта «Адреса» с соответствующими объектами «Сделки»?
Если нет, вы можете просто получить все объекты Address и просто получить нужные свойства. Поскольку Core Data поможет вам управлять памятью, только извлекая нужные атрибуты, вы можете просто извлечь все объекты. Массив атрибута для всех экземпляров может быть легко формируется следующим образом:
[allAddresses valueForKeyPath:@"attributeName"];
Вы также можете непосредственно установить выборки resultType
собственности запрос на NSDictionaryResultType
и указать свойства в propertiesToFetch
.
Другой сценарий заключается в том, что вы не хотите, чтобы отношения между сделками и адресами были нарушены. В этом случае просто заберите все сделки (Core Data будет использовать сбой для уменьшения объема памяти). Затем вы можете перебирать результаты и легко получать каждый атрибут.
for (Deal *deal in allDeals) {
NSSet *allLongitudesInAddresses =
[deal.addresses valueForKeyPath:@"longitude"];
// do something with the attributes
}
Спасибо за отличный ответ Мунди. Второй сценарий, который вы описываете, - это то, чего я хочу достичь. Если я использую предоставленный вами код, будут ли основные данные извлекать все атрибуты адресных объектов при попытке доступа к долготе? –
- 1. Как выбрать определенные свойства объекта?
- 2. Доступ определенные свойства объекта SimpleXMLElement
- 3. Как получить идентификатор связанного объекта без загрузки связанного объекта?
- 4. Получить идентификатор связанного объекта
- 5. FBX SDK как получить свойства объекта, определенные пользователем
- 6. Получить свойство связанного/вложенного объекта
- 7. Получить свойства объекта, связанного с строкой в разделе UITableView
- 8. Как получить свойства объекта?
- 9. Джанго запросы на свойства связанного объекта устанавливает
- 10. Свойства объекта, связанного с доступом, от объекта пользователя после регистрации
- 11. Удалить определенные свойства из объекта JSON
- 12. Удалить определенные свойства объекта без цикла
- 13. REST API только устанавливает определенные свойства объекта
- 14. Как получить доступ свойства объекта
- 15. Как получить свойства динамического объекта
- 16. EntityFramework сортировки связанного объекта
- 17. Получить значение свойства объекта
- 18. Получить свойства объекта?
- 19. Получить свойства объекта «parent creation»
- 20. Получить значение свойства объекта
- 21. Как получить адрес объекта связанного объекта с CoreData?
- 22. Просмотр связанного свойства
- 23. Как не запрашивать определенные свойства при создании объекта через SOAP?
- 24. Использование связанного объекта C#/XAML
- 25. Как получить доступ к объекту связанного объекта с нокаутом
- 26. Рекурсивно Получить свойства и детские свойства объекта
- 27. Невозможно получить определенные свойства с помощью @ConfigurationProperties
- 28. Получить идентификатор связанного объекта после сохранения
- 29. Automapper отображает только определенные свойства
- 30. Получение атрибутов связанного объекта
Вы имеете в виду, когда вы получаете их из CoreData? – perrohunter
Да, это именно то, что я имею в виду. –
Если вы выберете все сделки внутри CoreData, вы получите адреса, обратившись к NSSet, которые будут связаны с отношением Address Many to Many. Таким образом, вы можете пройти через NSSet и получить широту и долготу из системы. Таким образом, вы можете просто создать NSFetchResult с необходимым типом сущности типа, тогда вы можете выполнить его внутри своего управляемого объекта. – darren102