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
相关产品推荐
相关产品推荐

