我设计了一个登录应用程序。我已经在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?
您也可以在需要的地方直接访问钥匙串。您还应该问自己,为什么这么多代码需要访问用户名/密码。听起来像是破损的设计。