Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:swift中的singleton子类_Ios_Swift - Fatal编程技术网

iOS:swift中的singleton子类

iOS:swift中的singleton子类,ios,swift,Ios,Swift,我有一个框架,其中有一个singleton类,比方说singleton。该类由框架中的其他类使用 在app项目中,我想对这个singleton类进行子类化,例如AppSingleton:singleton。可能吗?什么是正确的解决方案?我提供了一个解决方案,但它可能有点粗糙 Class A { open class var shared: A { return A.privateShared } private static let privateShared = A() }

我有一个框架,其中有一个singleton类,比方说singleton。该类由框架中的其他类使用


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

我提供了一个解决方案,但它可能有点粗糙

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个实例!因此,从技术上讲,它将不再是一个
单例


但是,您可以替代类B的属性或方法来调用.shared方法或属性。你必须知道你在做什么,并考虑用另一种方法来解决你想解决的问题。因为如果你把它分为子类,那么它就不再是一个单身汉了。你是对的。谢谢,那不对。子类化并不意味着它不再是一个单例。这只是意味着应用程序中现在将存在另一个单例对象,它从中获取行为相似性。您能否详细说明一下,用例到底是什么?大多数事情都可以通过扩展singleton类来实现。