2016-05-12 7 views
0

私のiOSアプリケーションでは、ネットワークからロードされ、そのデータをNSUserDefaultsに保存するObjective-Cオブジェクトとして保存されるユーザーデータを持っています。私は現在のユーザーをログアウトして削除し、新しいユーザーにログインし、アプリ全体で代わりにそのユーザーを使用できるようにする必要があります。今のところ私はUserManagerと呼んでおり、方法は-(User)currentUserです。ユーザーデータを保存してTyphoonに挿入する正しい方法は何ですか?

依存性注入のために私の台風枠(http://typhoonframework.org)で台風を使うことに移行しています。ユーザーデータを格納する正しい方法は何ですか?私はUserManagerクラスを保つことができ、台風経由でそれを必要とするあらゆる場所に注入し、台風タイプdefinition.scope = TyphoonScopeSingleton;として設定することができます。

私がこれを行うと、それはまだ単なるシングルトンではないのですか?私はそれが実装に隠されているのではなく、クラスに注入されているので少し良くなっていることは分かっています。しかし、ちょうどUserオブジェクトをどこかに保ち、現在のものを注入するより良い方法があるように思えますが、[注入]シングルトンでゲッタをラップすることなくそれを入れます。

ありがとうございました。

答えて

0

台風をお寄せいただきありがとうございます!

私が正しくあなたを理解していれば、あなたにのようなあなたのクラスにあるCurrentUserの注入を行う必要があります。

@implementation Assembly 

- (User *)currentUser 
{ 
    return [TyphoonDefinition withFactory:[self userManager] selector:@selector(currentUser)]; 
} 

- (UserManager *)userManager 
{ 
    return [TyphoonDefinition withClass:[UserManager class] configuration:^(TyphoonDefinition *definition) { 
     definition.scope = TyphoonScopeSingleton; 
    }]; 
} 
+0

うん、それはかなり私がやったことです。私はシングルトンのユーザマネージャを避けるために何らかの方法を望んでいました。おそらく方法はありません。私はサークルを正方形にしようとしていました。 –

関連する問題