gpt4 book ai didi

ios - 无法将类型 '[Thing]' 的值分配给类型 '[Any]' 的值

转载 作者:行者123 更新时间:2023-11-28 09:09:40 25 4
gpt4 key购买 nike

我正在努力解决看似简单的 Swift 问题。

我已经声明了一个 struct,它带有一个返回一些实例的静态函数:

struct Thing {
static func allTheThings() -> [Thing] {
...
}
}

我有一个 CustomViewController 声明了一个属性:

var objects = [Any]()

viewDidLoad() 中该 Controller 的子类中,我尝试分配 objects 属性。

objects = Thing.allTheThings()

但是我遇到了一个编译错误

Cannot assign a value of type '[Thing]' to a value of type '[Any]'

这不是Any 的全部意义吗?

这个有效:

objects = Thing.allTheThings().map { $0 }

但这不是

let things = Thing.allTheThings().map { $0 }
objects = things

知道这里发生了什么吗?

最佳答案

似乎 Swift 可以将 Thing 转换为 Any 但不能将 [Thing] 转换为 [Any]。

这行得通的原因

 objects = Thing.allTheThings().map { $0 }

是编译器可以推断$0的类型是Any,但是在第二个例子中

let things = Thing.allTheThings().map { $0 }

它推断 $0 是 Thing 类型。您最终得到 [Thing] 类型的变量 things,这意味着赋值

objects = things

将意味着从 [Thing] 到 [Any] 的转换不起作用。

关于ios - 无法将类型 '[Thing]' 的值分配给类型 '[Any]' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com