2017-02-18 4 views
0

私は自分のプロジェクトでシングルトンを使用していますが、stackOverflowで読んでいるシングルトンは悪いです。Swift:シングルトンよりcurrentUserを保存する他の方法はありますか?

私は、アプリケーションデリゲートにcurrentUser情報を取得するアプリを持っています。私は、すべてのアプリケーションを介してこの情報にアクセスする必要がありますシングルトンを作る以外の方法は、現在のユーザーを格納するためにそこにアクセスすることですか?

私はまた、firebaseController(firebaseからのデータを解析するために使用されるビューコントローラ)をシングルトンとして使用します。これは良いアイデアですか、それとも良い選択肢になるのでしょうか?

答えて

3

現在のユーザーにシングルトンを避ける方法はいくつかあります。

  1. あなたのアプリデリゲートの内部クラスレベルのVARとして、現在のユーザーを保持し、その後、あなたのビューコントローラまたはそれを必要とする他のクラスにそれを渡すことができます。

  2. コアデータまたはNSUserDefaultsに現在のユーザー情報を保存し、必要な場所で取得することができます。

私は、現在のユーザーにアクセスする単体テストコードに適しているので、オプション1を優先します。

私の意見では、シングルトンは本質的に悪いことではありません。グローバル変数として使用すると悪くなると思うので、コード内のどこからでも簡単にアクセスできます。それは避けなければならない!しかし、あなたはパスしない限り、パスしてアクセスしないシングルトンを持つことができます。

関連する問題