Так как статические хранимые свойства пока не поддерживаются для родовых типов в swift, интересно, какая хорошая альтернатива.
Мой конкретный вариант использования - это то, что я хочу построить ORM в быстром. У меня есть протокол Entity
, который имеет связанный тип для первичного ключа, поскольку некоторые сущности будут иметь целое число как их id
, а некоторые будут иметь строку и т.д. Таким образом, общий протокол Entity
.
Теперь у меня также есть тип EntityCollection<T: Entity>
, который управляет коллекциями сущностей, и, как вы можете видеть, он также является общим. Цель EntityCollection
заключается в том, что он позволяет вам использовать коллекции объектов, как если бы они были нормальными массивами, не зная, что там есть база данных. EntityCollection
будет заботиться о запросе и кешировании и быть максимально оптимизированным.
Я хотел использовать статические свойства в EntityCollection
для хранения всех объектов, которые уже были извлечены из базы данных. Таким образом, если два отдельных экземпляра EntityCollection
хотят получить один и тот же объект из базы данных, база данных будет запрашиваться только один раз.
Вы, ребята, знаете, как еще я мог это достичь?