アプリを最初に作成したとき、すべてのランタイムカスタムオブジェクトとプロパティをアプリデリゲートに保存して、ビュー間で共有できるようにしました。私はこれが好きではなく、常に変更したいと思っていたので、今日読んで、すべてのランタイムプロパティとオブジェクトを次のようなシングルトンオブジェクトに移動しました。
@synthesize gblStr;
+(AppDataSingleton *)singleObj
{
static AppDataSingleton * single=nil;
@synchronized(self)
{
if(!single)
{
single = [[AppDataSingleton alloc] init];
}
}
return single;
}
ここで、gblStrには、シングルトンを持つ任意のViewControllerからアクセスできます。
これはうまく機能し、すべてのオブジェクトをアプリデリゲートではなくここに保存するようになりました。
各ViewControllerに、プロパティを追加します。
AppDataSingleton *globalSingleton;
そして、viewDidLoadで、それをインスタンス化します。
globalSingleton = [AppDataSingleton singleObj];
私の質問は: ユーザーがアプリに戻ってきて、シングルトンが破壊された場合はありますか?これを確認する必要がありますか?
または、破壊された場合、アプリを最初からやり直すのでしょうか?