Я создал универсальную функцию, которая передает один конкретный тип и другой тип 'универсальный'.
func initializeCategory<T: UIView> (category: Category, type: T) {
//Find which type 'type' is
//If type is of type, 'UIView' -> do something
//else if type is of type, 'Category' or another type -> Do something else
}
Что я пытаюсь сделать, это найти, какой тип передается в качестве универсального типа в моей функции?
Есть ли лучший способ создать универсальную функцию, которая может запрашиватьразличные типы переданы в него?
Или я должен установить его следующим образом: <T: Any>
??
PS Категория является подклассом UIView
Спасибо
ОБНОВЛЕНИЕ
По сути, я пытаюсь выполнить универсальную функцию ограничения.
Вот ограничения:
view.addSubview(categoryOne)
categoryOne.delegate = self
categoryOne.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 16).isActive = true
categoryOne.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16).isActive = true
categoryOne.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16).isActive = true
categoryOne.heightConstraint = categoryOne.heightAnchor.constraint(equalToConstant: 40)
categoryOne.heightConstraint?.isActive = true
Что мне нужно, так это возможность изменить ограничение 'top Anchor'.Поэтому, если я передам тип UIView, он будет установлен как is = constraint(equalTo: view.safeAreaLayoutGuide.topAnchor
и т. Д.
Однако, если я передам тип Category (который является подклассом UIView), то мне нужно изменить ограничение (equalTo: category.bottomAnchor и т. д.
- Я подумал, что если у меня есть общая функция, которая запрашивает, какой тип передается, я мог бы получить результат.