Iphone Objective-C类初始化或单例

Iphone Objective-C类初始化或单例,iphone,ios,objective-c,Iphone,Ios,Objective C,在我的程序中,我应该在几种模式下初始化类,而不创建新实例。 可能吗?也许是单身?我希望有一个实例,并多次调用init方法。有人能告诉我这是否可行吗?比如: [[MyObject sharedObject] initWithMode:mode1]; 后来: [[MyObject sharedObject] initWithMode:mode2]; 在这里,单例不能帮助您,因为它是一个共享实例。如果ObjectA在模式1中初始化,那么ObjectB将无法在模式2中初始化它。即使ObjectB可以

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

[[MyObject sharedObject] initWithMode:mode1];
后来:

[[MyObject sharedObject] initWithMode:mode2];

在这里,单例不能帮助您,因为它是一个共享实例。如果ObjectA在模式1中初始化,那么ObjectB将无法在模式2中初始化它。即使ObjectB可以,它也会更改ObjectA希望使用单例的上下文,这将导致意外行为


有两种方法可以管理这一点,但在不了解更多您想要完成的内容的情况下,我建议将每个模式的子类作为类的不同实例化。

这样做您想要解决什么问题?这似乎很奇怪。为什么不使用
setMyObjectMode
而不是
initWithMode
,这意味着初始化,因此可能是内存泄漏?在对象的生命周期内,绝不应调用多个初始化方法@拉米的建议很好。或者,根本不要使用单例。