我设计了一个登录应用程序。我已经在sqlite数据库中输入了帐户数据。但是,当我使用帐户用户名和密码登录时,我希望所有视图控制器都可以访问它们。因为,我有不同的控制器将更新帐户详细信息。需要实现细节。
谢谢

最佳答案

使用单例:http://www.galloway.me.uk/tutorials/singleton-classes/

我有一个类似这样的项目(请注意,我使用的是iOS钥匙串而不是数据库,但是我在这里隐藏了这些详细信息):

@interface User : NSObject
@property (nonatomic, strong) NSString *username;

+ (User *)currentUser;

@end

@implementation User

+ (User *)currentUser
{
    static User *currentUser = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        currentUser = [[User alloc] initFromKeychain];
    });
    return currentUser;
}
@end


有很多方法可以做单例(取决于您对某人是否可以创建类的非单例实例的偏执程度)。此处的示例:What should my Objective-C singleton look like?

您也可以在需要的地方直接访问钥匙串。您还应该问自己,为什么这么多代码需要访问用户名/密码。听起来像是破损的设计。

10-06 13:10
查看更多