Мне интересен краткий способ поиска соответствия в массиве, который требует уровней подобъектов. Производительность не должна быть близкой к идеальной, но должна быть разумной.
Для этого случая Я не хочу добавлять обратную связь или управлять сохраненными словарями . Я вообще не хочу менять модель.
Object1 содержит Object2, а Object2 содержит Object3. Я понимаю, что следующий метод вернет совпадение first , однако будет также приемлемо решение, которое возвращает каждое совпадение.
-(Object1*)getObject1ForObject3:(Object3*)object3
{
for(Object1 *object1 in self.object1s)
if(object1.object2.object3 == object3)
return object1 ;
return nil ;
}
А для престижа, можем ли мы сделать это кратким, если в середине есть отношения ко многим?
-(Object1*)getObject1ForObject3:(Object3*)object3
{
for(Object1 *object1 in self.object1s)
for(Object2 *object2 in object1.object2s)
if(object2.object3 == object3)
return object1 ;
return nil ;
}