1

シンプルな Twitter クローン アプリを作成しています。基本的に、ユーザー名でサインインすると、友達からのすべての投稿が表示されます。ユーザーエンティティと投稿エンティティにコアデータを使用しています。

これまでのところ、認証を実装することはできましたが、ユーザーがサインインに成功したら、ユーザー オブジェクトをどこに保存するかわかりません。 AppDelegate のプロパティとして保存して、任意のビュー コントローラーからアクセスできるようにすることを考えていますが、これが正しいアプローチかどうか疑問に思っていました。

4

3 に答える 3

0

ユーザー オブジェクトを単独で渡すか、より大きな Context オブジェクト内の他のオブジェクトと共に渡し、必要に応じてそれを各 ViewController に割り当てることをお勧めします。

コンテキストクラスの例

@interface MyContextClass
@property (nonatomic) MyUserClass *user;
@property nonatomic) Settings *settings;
@end

次に、任意の UIViewController で、この Context オブジェクトのプロパティを設定します。

@interface MyViewController
@property (nonatomic) MyContextClass *context;
#end

これは依存性注入の例であり、1 つのシングルトンに縛られることなく、さまざまなユーザー/コンテキスト/ローカルなどでさまざまなビュー コントローラーをテストできます。

于 2013-09-25T02:51:33.637 に答える
0

アプリ内の複数の場所からユーザーの詳細にアクセスする必要があると思います。モデルの動作でアプリ デリゲートをオーバーロードするのではなく、ユーザー情報をモデル クラスに格納する必要があります。一部の開発者 (私自身を含む) は、シングルトン パターンを使用してモデル クラスを作成します (または、より複雑なアプリでは、モデル クラスと、バックグラウンドで他の複数のモデル クラスとやり取りするパブリック インターフェイス)。必要に応じてオプションで永続化します。

于 2013-09-25T01:47:44.693 に答える
-1

これには NSUserDefault を使用できます。

 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
 [userDefaults setObject:username forKey:@"username"];
 [userDefaults setObject:password forKey:@"password"];

そしてそれを次のように取り出します:

 NSString username = [userDefaults objectsForKey:@"username"];
 NSString password = [userDefaults objectsForKey:@"password"];
于 2013-09-25T06:29:57.197 に答える