retainシングルトンで使用する意味はありますか? シングルトン パターンを使用するポイントは、1 つのグローバル オブジェクトを保持してさまざまなクラスからアクセスできるようにすることだと思います。retainそのようなオブジェクトで使用するケースは何でしょうか?
通常、retainシングルトン クラスでの の実装はself(シングルトン インスタンスではなく) 次のように返されます。
-(id)retain
{
return self;
}
私は最近、いくつかのオープン ソース コードを調べましたが、作者はシングルトンを繰り返し保持していました。
object = [[SingletonClass shareObject] retain]
でリリースしましたdealloc。
そのため、このプロジェクトをビルドしようとすると、最初は機能しましたが、後でシングルトン オブジェクトの変数にアクセスしようとするとクラッシュしました。
シングルトンオブジェクトを保持してアクセスしようとすると、正確にはどうなりますか?