мне интересно, если я могу сделать что-то вроде этого:Могу ли я использовать кортежи с AnyObject?
override func someCocoaFunc(someParameter:AnyObject?) {
if let parameter = someParameter as! Tuple {
let parameterType = parameter.1
if parameterType == "Heads up, this is an Int" {
print(parameter.0 + 1) //prints 2
}
else {
//fallback
}
}
}
let myTuple = (1,"Heads up, this is an Int")
someCocoaFunc(myTuple)
Очевидно, что это не работает, потому что Кортеж не является классом, или по крайней мере не один я могу бросить в любом случае. Есть ли способ заставить это работать, если да, то как? Если нет, то какой способ определить тип AnyObject
? Я пробовал:
if parameter is Bool {
//some code
}
else if parameter is Int {
//some code
}
Но это не похоже на работу, я думаю, потому что Bool просто typealias'd Int или что-то? Итак, чтобы обобщить, могу ли я использовать Tuples здесь, а если нет, что мне делать? Чтобы добавить некоторый контекст, я пишу один класс, который используется в разных целях для сервалов, поэтому я не могу быть уверен, что это будет за значение, просто это либо Int, либо Bool.