我一直在尝试将单例类转换为泛型。由于swift不支持通用类Singleton中的存储属性,因此无法实现。我尝试了所有已知的可能解决方案,但没有任何效果。与该主题相关的其他Stackoverflow答案也无济于事。有人可以帮助我走上正确的道路吗?预先感谢。
我在下面添加了示例代码。
class SingleTonClass<T: Equatable & RawRepresentable>: NSObject where T.RawValue == String {
private var catlog: CatlogModelClass<T>?
private var catlogArray = [CatlogModelClass<T>]()
**// This stored property Now has to be changed to support Generic**
private static var shared : SingleTonClass = {
return SingleTonClass()
}()
// Accessor for Singleton
static func sharedInstance() -> SingleTonClass {
return shared
}
private override init () {}
}
答案 0 :(得分:0)
如果您希望它不是单个对象,则需要创建一个公共构造函数。
您应该将catalog和catalogArray传递到构造函数中,并初始化self.catalog和self.catalogArray。然后,您需要删除该类的静态共享实例,因为新的设置将需要您创建该类的实例。