Я не знаю, поможет ли это вам или нет, потому что я не на 100% уверен в том, что вы пытаетесь сделать, но у меня была похожая проблема при импорте данных из базы данных MySQL в CoreData. Я широко использовал NSEntityDescription
Методы propertiesByName
, attributesByName
и relationshipsByName
. В моем случае, используя описания полей из таблицы MySQL, я убедился, что атрибуты моей модели совпадают с именами полей, поэтому вместо того, чтобы выполнять целую кучу if/else
тестов, у меня просто был тест кода, чтобы проверить, является ли [[SomeEntityDescription attributesByName] valueForKey:someFieldName]
вернул что-то кроме нуля. Если это так, я устанавливаю значение для объекта, который я создавал из импортированных данных, используя имя поля в качестве ключа.
Вы можете сделать что-то подобное для ваших отношений. если я понимаю, что вы пытаетесь сделать правильно, сравнив ключи [someEntityDescription relationshipsByName]
, или вы можете получить все отношения, нацеленные на интересующую вас сущность, используя relationshipsWithDestinationEntity:(NSEntityDescription *)entity
.