自定义 class 作为元组中的 AnyObject

Custom class as AnyObject in tuple

我想在元组中使用 AnyObject 以传递我的自定义 class:

var array: [(Float, AnyObject)] = []

let number: Float = 10.0
let instance = MyClass()

向数组添加元组的两种方法均无效:

array += [(number, instance)]
array.append((number, instance))

不可以吗?

您正在尝试添加不同类型的元组,因为它是 (Float, MyClass) 而不是 (Float, AnyObject)

只需更改此:

let instance = MyClass()

进入:

let instance: AnyObject = MyClass()

它应该可以工作。

或者,您可以在创建元组时执行显式向下转换

array += [(number, instance as AnyObject)]
array.append((number, instance as AnyObject))