プロジェクト全体で一度だけ割り当てオブジェクトであるシングルトンクラスがあります。以下にいくつかのコード行を示します。
宣言... ....
MyClassName *classObject = nil
init メソッドでは、コードは次のようになります。
-(id) init(){
self = [super init];
if(classObject == nil){
1. Allocate object code here
2. classObject = self;
3. return classObject
} else {
return classObject;
}
}
しかし、私の問題は、このオブジェクトの割り当てをどのように解除するかということです。私はすべてのクラスからこの init メソッドを呼び出しており、毎回 classObject 参照を返しています。
私のアプローチ....
appdelegate.m の dealloc メソッドから、 MyClassName で定義されている関数 (releaseObject) を呼び出しています。これが関数本体の定義です...
-(void) releaseObject {
[self release]; // Confusion: Will it dealloc classObject reference?
[super release];
}
これは良いアイデアで、このオブジェクトの割り当てを解除しますか? 私の問題は、アプリケーションが閉じられるまでオブジェクトの割り当てを解除する必要がないことです。