Я пытаюсь без успеха развернуть и наложить несколько опций с помощью кортежей. Странная вещь заключается в том, что разворачиваются отдельные предметы. Было высказано предположение, что я злоупотребляю downcast as?
operator, , и это очень вероятно, но я просто не вижу его.typecasting tuples in swift
Может кто-нибудь объяснить, почему это не работает?
class fooba { }
func unwrapPair(a: AnyObject?, _ b:AnyObject?) {
if let a = a as? fooba {
// true
}
if let b = b as? fooba {
// true
}
if let (a, b) = (a, b) as? (fooba, fooba) {
// false!?!?
}
}
unwrapPair(fooba(), fooba())
Я не думаю, что это дубликат tuple "upcasting", , потому что разве я не понижающее приведение? Во всяком случае, объяснение того, как именно дублируются , было бы освещением и ответом само по себе.
Возможного дубликат [кортежи «в» приведении к базовому типу Swift] (http://stackoverflow.com/questions/31270507/tuple-upcasting-in-swift) –