2016-03-25 3 views
1

Я пытаюсь включить тип в swift. Я не пытаюсь включить тип экземпляра объекта, я пытаюсь включить сам фактический тип. Например:Включить Any.Type

let t: Any.Type = Int.self 
switch t { 
case is Int: 
    print("int") 
default: 
    print("other") 
} 

Я ожидаю, что это напечатает «int», но оно попадает в случай по умолчанию.

я могу достичь желаемого результата с, если заявление, как,

if t == Int.self 
{ 
    print("t is an int") 
} 

, но я надеялся на способ сделать это с помощью переключателя. Я прочитал документацию Apple «Type Casting», возможно, недостаточно тщательно, потому что я не вижу способа применить ее здесь.

ответ

3

Xcode генерирует следующее предупреждение по данному делу: «Cast от„Any.Type“к неродственному типу„Int“всегда терпит неудачу», который намекает на правильном пути:

let t: Any.Type = Int.self 
switch t { 
case is Int.Type: 
    print("Int") 
default: 
    print("Other") 
} 
Смежные вопросы