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

Swift中为GenreViewModel设置默认值失败(Apollo 1.9.3)

解决Apollo 1.9.3中初始化GenreViewModel默认值的问题

针对你遇到的无法初始化GetGenreQuery.Data.Genre来设置GenreViewModel默认值的问题,在Apollo 1.9.3版本中可以通过构造符合字段结构的_fieldData字典来实现:

修正后的代码

struct GenreViewModel: Identifiable, Hashable {
    let genre: GetGenreQuery.Data.Genre
    let id = UUID()
    
    var name: String {
        genre.name
    }

    static var defaultGenre: GenreViewModel {
        // 根据你的GraphQL查询字段构造fieldData,这里假设只有name字段
        let fieldData: [String: AnyHashable] = [
            "name": "默认分类" // 自定义默认名称
        ]
        // 用构造好的fieldData初始化mock Genre实例
        let mockGenre = GetGenreQuery.Data.Genre(_fieldData: fieldData)
        // 返回默认的GenreViewModel
        return GenreViewModel(genre: mockGenre)
    }
}

关键说明

  • Apollo 1.9.x生成的GetGenreQuery.Data.Genre属于GraphQLSelectionSet子类,它的_fieldData参数接受[String: AnyHashable]类型的字典,只要字典包含查询中定义的字段键值对,就能生成可用的mock实例。
  • 如果你的Genre还有其他必填字段(比如id),需要在fieldData中补充对应的键值,避免访问字段时出现nil或崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:04:54