【问题标题】:How to get firstindex of array in struct Swift如何在struct Swift中获取数组的firstindex
【发布时间】:2020-09-12 14:34:12
【问题描述】:

你好,我有一个这样的结构

struct OrderCaches: Codable {
    var food, drink: [Food]?
}


struct Food: Codable{
    var id: Int?
    var name: String?
    var quantity: Double?
    var notes: String?
}

我想获得第一个索引,其中 id = productList[indexPath.row].id

我试过了:

let index = OrderCaches.firstIndex(where: {$0.food.id == productList[indexPath.row].id})

但不起作用我收到此错误“'[Food] 类型的值?'没有成员 'id'"。 如何获得第一个索引? 谢谢

【问题讨论】:

  • 这里的类型真的很可疑。有一个 nil 数量和一个未命名的 Food 没有 ID 或注释是什么意思?因为考虑到Food 的字段类型,目前这是可能的,但在现实生活中没有任何意义

标签: arrays swift dictionary struct codable


【解决方案1】:

函数firstIndex不是静态成员,而是实例成员,因此您必须创建OrderCache的实例才能获取索引,如下所示:

let orderCaches = OrderCaches(food: [], drink: [])
let index = orderCaches.food?.firstIndex(where: { $0.id == productList[indexPath.row].id })

【讨论】:

  • 对不起,我刚刚意识到您在我之前发布了相同的解决方案..所以删除了我的
  • @jawadAli 哦,没关系。有第二个意见总是好的,愉快的编码。
  • 我找到了解决方案。我的错误是我创建了一个 [OrderCaches] 类型的变量。现在变量的类型是“OrderCaches”,现在它可以工作了。感谢您的解决方案
猜你喜欢
  • 2021-03-23
  • 1970-01-01
  • 2019-08-19
  • 2021-12-31
  • 2022-01-20
  • 1970-01-01
  • 2021-12-28
  • 2022-10-14
  • 2015-05-06
相关资源
最近更新 更多