Форум программистов, компьютерный форум CyberForum.ru

Swift

Войти
Регистрация
Восстановить пароль
 
alazir
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 10
#1

Связь двух типизированных протоколов - Swift

14.02.2016, 11:23. Просмотров 248. Ответов 0
Метки нет (Все метки)

Уважаемые коллеги!
Столкнулся со следующей проблемой. Нужно создать иерархическую коллекцию, в которой элементы выводятся более одного раза. Например, есть задача, у которой есть подзадачи. При этом задача (и все ее подзадачи) может выводиться в нескольких контекстах. Кроме того, должна также сохраняться информация, развернут элемент пользователем или нет.
Поскольку один элемент встречается больее раза и в одном случае может быть открыт, в другом свернут - нужен промежуточный протокол Node

Очень желательно решить проблему протоколами, и тогда получается следующее:

protocol Node{
typealias T
var item: T{get}
var isExpanded: Bool{get}
}

protocol Hierarchy{
typealias T2
func children(parent: Node) -> [Node]{
..........................
}
var allNodes: [Node] {get}
}

Но эта конструкция не работает, т.к. [Node] - массив гетерогенный и немудрено, ведь тип Т2 должен быть увязан с Т.
А где указать что (T2 is Node.T) я не знаю.

Собственно, об этом и вопрос. Заранее спасибо!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2016, 11:23     Связь двух типизированных протоколов
Посмотрите здесь:

связь двух форм MS Access
Связь двух таблиц MS Access
Связь двух роутеров
Не получается записать из двух типизированных файлов в один текстовый Turbo Pascal
Delphi Связь двух комбобоксов
связь двух ноутов
Delphi БД Связь двух комбобоксов
Сумма двух типизированных файлов Turbo Pascal
Связь двух таблиц в БД C#
Swift Множества (SET) протоколов
Связь двух DBLookupComboBox Delphi БД MS Access
Сильная связь Swift Swift

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru