Objective-C类初始化或单例

时间:2013-08-26 15:42:03

标签: iphone ios objective-c

在我的程序中,我应该在几种模式下初始化我的类而不创建新实例。 可能吗?也许与单身人士?我希望只有一个实例,并且多次调用init方法。有人能告诉我这是否可能?像这样:

[[MyObject sharedObject] initWithMode:mode1];

以后:

[[MyObject sharedObject] initWithMode:mode2];

1 个答案:

答案 0 :(得分:1)

Singleton不会在这里帮助你,因为它是一个共享实例。如果ObjectA在模式1中进入,然后ObjectB将无法在模式2中初始化它。即使ObjectB可以,它也会改变ObjectA期望使用Singleton的上下文,这将导致意外行为。

有几种方法可以解决这个问题,但是如果不知道你想要完成的更多内容,那么我会建议每种模式的子类作为类的不同实例。