【发布时间】:2016-03-28 17:36:15
【问题描述】:
我正在尝试创建一个这样的结构实例数组:
let installers: [AnyObject] = [Homebrew(), Ls()]
但我收到此错误:
value of type 'Homebrew' does not conform to expected element type 'AnyObject'
当我没有给数组指定类型时,我得到一个模棱两可的类型错误,并且它需要更多上下文。
有可能完成我想做的事情吗?
我用谷歌搜索了所有东西,但我找不到任何东西。
【问题讨论】:
-
请注意,虽然 Adam 在语法上是正确的,但这几乎总是错误的设计。应该有一些 Homebrew 和 Ls 都符合的协议,并且您应该制作该协议的数组,而不是
Any。Any破坏了 Swift 的类型安全,并创建了许多棘手的极端情况和微妙的错误(尤其是在涉及泛型或 Optionals 时)。除非绝对必要,否则应避免。 (AnyObject也是如此。) -
@RobNapier 同意。
标签: arrays swift struct swift2