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

SwiftUI如何创建自定义类的默认实例 支持类名.defaultInstance调用

实现方法

你可以通过给ScanItem添加静态类型属性的方式实现需求,有两种常见的实现场景可选:

场景1:全局共用同一个默认实例(单例形式)

如果你的默认实例参数固定,且不需要每次调用都生成新对象,直接添加静态存储属性即可:

class ScanItem {
    let title: String
    let content: String
    // 新增静态默认实例属性,这里的默认取值可以按你的需求修改
    static let defaultInstance = ScanItem(title: "默认标题", content: "默认扫描内容")

    init(title: String, content: String) {
        self.title = title
        self.content = content
    }
}

调用方式完全符合你的要求:

let newScan = ScanItem.defaultInstance

场景2:每次调用都生成全新的默认实例

如果你需要每次调用defaultInstance都得到一个新的、参数为默认值的实例,可以用静态计算属性实现:

class ScanItem {
    let title: String
    let content: String
    // 静态计算属性,每次调用都会生成独立新实例
    static var defaultInstance: ScanItem {
        ScanItem(title: "默认标题", content: "默认扫描内容")
    }

    init(title: String, content: String) {
        self.title = title
        self.content = content
    }
}

调用方式和上述场景完全一致,区别是每次调用返回的都是互不影响的新实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:24:06