1. если надо определить действие при нажатии на ячейку то
- по индексу нажатой ячейки достаешь модельку из urlType и вот тебе и тип
2. коллекшнвьюха
3. их много.
можно как у тебя в примере - через энам
можно разные модели, но удовлетворяющие одному протоколу (по которому и тип получить можно и урл)
можно, вдобавок к предыдущим, еще и ячейки разных типов (вместо одного типа, но с двумя вьюхами imageView и videoView), и по ним понимать
...а можно вообще "костыли" и "треш" городить какие душе угодно
4. Не понятно какие бизнес требования к этой коллекшнвьюхе (читай: шо надо будет чтобы он делал?)