Вы можете создать enum
и использовать его для переключения между делами, которые вводит пользователь,
Примерно так:
enum ClassType: String {
case triangle = "triangle"
case rectangle = "rectangle"
}
func getClass(with name: String) -> Shape? {
switch ClassType(rawValue: name.lowercased()){
case .triangle?: print("Triangle")
return Triangle()
case .rectangle?: print("Recangle")
return Rectangle()
case .none:
print("not found")
return nil
}
}
Тест : getClass(with: "Triangle")
Результат : Треугольник
Другой способ, но я не очень рекомендую, это проверить описание имени класса, как это.
func drawMyShape(name: String) {
if name == String(describing: Rectangle.self){
print("Rect")
} else if name == String(describing: Triangle.self) {
print("Triangle")
}
}
drawMyShape(name: "Rectangle")