You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift Xcode13中SwiftUI List调用identified报Array无该成员错误怎么解决?

错误原因

identified(by:) 是 SwiftUI 早期测试版本提供的API,在正式版发布后就被官方移除,所以在Xcode 13对应的SwiftUI版本中无法调用该方法,才会抛出你遇到的报错。

解决方案

直接将List行的identified(by: \String.self)写法替换为显式指定id参数的写法即可,修改后的对应代码行如下:

List(categories.keys.sorted(), id: \.self) { key in

修改完成后的完整HomeView代码参考:

import SwiftUI

struct HomeView: View {
    var categories:[String:[Sticker]] {
        .init(
            grouping: stickerData, by: {$0.category.rawValue}
        )
    }

    var body: some View {
        NavigationView{
            List(categories.keys.sorted(), id: \.self) { key in
                StickerRow(categoryName: " Sticker \(key)".uppercased(), stickers: self.categories[key]!)
             }
        }          
    }
}

补充说明

你当前的场景中分类key是唯一的字符串,用\.self作为id完全符合要求,不会出现重复标识的问题。如果后续你的数据源有唯一的自定义id属性,也可以把id参数替换为对应的属性KeyPath即可。

内容的提问来源于stack exchange,提问作者EmmeBee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:06:06