我正在尝试新的东西,所以只是通过一个思考过程,只允许我的单例类为隐藏在其后面的其他类创建新实例。
我能够限制使用“unavailable”属性和我的init方法调用init方法,但是我可以创建一个只有我的Singleton类可以调用init方法的异常。
答案 0 :(得分:1)
但是我可以创建一个异常,只有我的Singleton类可以调用init方法
您无法知道调用者是谁 - 请参阅问题的this discussion - 但您当然可以通过不将其放在标题中来隐藏它。如果可能的话,常用的解决方案是让单件工厂方法调用" private"初始化程序并在" public"上抛出异常初始化。当然,这并不能阻止任何人打电话给私人"初始化程序 - 抱歉,Objective-C过于动态 - 但它使得错误地获取非单例实例变得更加困难。