Please help me with Swift, I need singleton with can inheritance. I can do like this
class A {
    var defaultPort: Int
    required init() {
        self.defaultPort = 404
    }
    class var defaultClient: A {
        struct Static {
            static var onceToken: dispatch_once_t = 0
            static var instance: A? = nil
        }
        dispatch_once(&Static.onceToken) {
            Static.instance = self.init()
        }
        return Static.instance!
    }
}
but in swift 2.0 we can do like this
static let defaultClient = A() //self.init() 
but it creates an instance of the class A any way. How i can use like this self.init()
static let defaultClient = self.init()
in order to be able to inherit
UPD best way for now
class A {
    class func defaultClient() -> Self {
        struct Static {
            static var onceToken: dispatch_once_t = 0
            static var instance: A? = nil
        }
        dispatch_once(&Static.onceToken) {
            Static.instance = self.init()
        }
        return instance(Static.instance, asType: self)
    }
}
here we need helper as
func instance<T>(instance: Any, asType type: T.Type) -> T {
    let reurnValue = instance as! T
    return reurnValue
}
because another way cast A to Self not exist, for now.
p.s. crazy swift way! why i can not do instance as! Self
 
     
    