【问题标题】:Swift ui picker with empty array No exact matches in call to initializer带有空数组的 Swift ui 选择器在调用初始化程序时没有完全匹配
【发布时间】:2021-09-19 23:51:20
【问题描述】:

我有以下问题我有一个数组开头为空[]

然后如果发生某些事情,它将被填充。

无论如何,一旦我启动程序,我就会收到以下错误。

谁能帮帮我?

@State var userArray = []

if(userArray.count > 0) {
   Picker("", selection: $user) {
          ForEach(userArray, id: \.self) {
            Text($0)
          }
   }.labelsHidden()
}

【问题讨论】:

  • 您的userArray 数组是否包含自定义类或String 的数组?
  • 字符串数组

标签: arrays swift xcode foreach swiftui


【解决方案1】:

尝试明确说明您将在userArray 中存储哪些对象,根据您的情况进行更改

@State var userArray = []

@State var userArray: [String] = []

or

@State var userArray = [String]()

如果您没有明确说明要在 @State 变量中存储的内容。 Swift 会自动设置数据类型为Any

请参考我在下面展示的示例。第一个是在声明数据类型之前,第二个是在我设置数据类型之后

  1. 这是在明确说明我将在 userArray 上存储的内容之前

  2. 在明确说明我将存储一个字符串数组 ([String])

【讨论】:

  • 谢谢,但如果我记得Text($0 as! String),在内部我曾尝试做类似的事情,但它没有收紧。
  • 这样做会造成不必要的复杂
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 2022-11-19
  • 2020-08-22
  • 2022-01-15
  • 2022-08-02
  • 1970-01-01
  • 2020-10-29
相关资源
最近更新 更多