仅允许特定类在iOS中调用init

时间:2015-05-12 18:01:48

标签: objective-c

我正在尝试新的东西,所以只是通过一个思考过程,只允许我的单例类为隐藏在其后面的其他类创建新实例。

我能够限制使用“unavailable”属性和我的init方法调用init方法,但是我可以创建一个只有我的Singleton类可以调用init方法的异常。

1 个答案:

答案 0 :(得分:1)

  

但是我可以创建一个异常,只有我的Singleton类可以调用init方法

您无法知道调用者是谁 - 请参阅问题的this discussion - 但您当然可以通过不将其放在标题中来隐藏它。如果可能的话,常用的解决方案是让单件工厂方法调用" private"初始化程序并在" public"上抛出异常初始化。当然,这并不能阻止任何人打电话给私人"初始化程序 - 抱歉,Objective-C过于动态 - 但它使得错误地获取非单例实例变得更加困难。