我发现swift中的单身人士很容易(学分转到krakendev.io):
class TheOneAndOnlyKraken {
static let sharedInstance = TheOneAndOnlyKraken()
private init() {} //This prevents others from using the default '()' initializer for this class.
}
但我无法使用子类执行此操作,并且需要在超类中指定初始值设定项。当我尝试将所有指定的初始化程序定义为私有时,编译器说必须可以访问来自super的必需init方法。
如何使子类(例如来自UIViewController)成为具有一个实例的单例并将所有init-calls转发给我的单例实例?我也无法在我的init中修改self('self is immutable')。