我一直在尝试将单例类转换为泛型。由于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 () {}
}
如果您希望它是非单例,则需要创建公共构造函数。
您应该将catalog和catalogArray传入构造函数并初始化self.catalog和self.catalogArray。然后,您需要删除该类的静态共享实例,因为您的新设置将要求您创建它的实例。