iOS:swift中的子类单例

时间:2016-03-08 10:43:16

标签: ios swift

我有一个框架,我有一个单例类,让我们说Singleton。该类由框架中的其他类使用。

在app项目中,我想要将这个单例类子类化,例如AppSingleton:Singleton。可能吗?什么是正确的解决方案?

1 个答案:

答案 0 :(得分:0)

我提供了一个解决方案,但可能有点不客气。

Class A {
  open class var shared: A {
    return A.privateShared
  }
  private static let privateShared = A()
}

Class B {
  open class var shared: B {
    return A.privateShared
  }
  private static let privateShared = B()
}

我必须澄清,这种方法并不完美,因为它实际上创建了2个实例!因此,从技术上讲,它将不再是singleton

但是,您可以覆盖类B的属性或方法来调用A.shared方法或属性。您必须知道自己在做什么,并考虑使用其他方法来解决您要解决的问题。