Instanceof очень быстр. Это сводится к байт-коду, который используется для сравнения ссылки класса. Попробуйте несколько миллионов instanceofs в цикле и лично убедитесь.
Ошибка в Core Data не является ошибкой, это просто означает, что то, что вы пытаетесь получить, еще не было получено из базы данных. Если вы сделаете что-то вроде [fetchResults valueForKey: @ "name"]
, он сработает, и вы должны получить то, что ожидаете. Это не должно быть проблемой для вашей модели отношений.
Между прочим, «minCount 0, maxCount 0» кажется странным. Вы действительно этого хотите? minCount из 0
и maxCount из 1
должны иметь больше смысла.