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

这是一个依赖注入的例子,它允许你用不同的用户/上下文/本地等测试不同的视图控制器,而不必绑定到一个单例。

于 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 回答