10

データがデータベースに書き込まれるまでデータを蓄積するシングルトンクラスがあります(なぜこのように実装しているのかを知りたい場合は、ここを参照してください)。データを保存した後、シングルトンを破棄したいと思います。ARCでこれを行うにはどうすればよいですか?それとも私は妄想的であり、それを破壊する必要がありますか?

*これはこの質問の複製であると言うかもしれませんが、ここで受け入れられた回答は、役立つほど具体的ではありません。「明示的に呼び出すメソッド/関数を宣言できます」と書かれています。このためのコードはどのように見えるでしょうか?メソッドの外部でオブジェクトを解放できない場合、メソッドの内部でオブジェクトをプルオフするにはどうすればよいですか?また、「最も簡単な方法は、静的C ++クラスに保持させてから、デストラクタで解放することです」とも述べています。私はC++を知りませんが、-本当にC ++クラスをアプリコードに入れることができますか?

私のシングルトンは次のように実装されています。

+(NHCFamilyStatus *)familyStatus
{
  static dispatch_once_t pred;
  static NHCFamilyStatus *familyStatusSharedObject=nil;

    dispatch_once(&pred, ^
    {
        familyStatusSharedObject = [[NHCFamilyStatus alloc] init];
    });

  return familyStatusSharedObject;
}
4

1 に答える 1

20

このシングルトンを破棄すると、それを再度作成することはできなくなります(これが、dispatch_once呼び出しの意味です)。

シングルトンを破壊する必要はありません。どうしても、不要になったインスタンス変数を削除するメソッドをシングルトンに用意してください。ただし、他に何もする必要はありません。

于 2012-10-27T21:28:00.517 に答える