我正在使用登錄系統連接到我的網絡服務器的移動應用程序。我創建了一個用戶對象,在第一次登錄後,它應該爲下一次應用程序重新啓動保存其令牌。我還需要這個用戶對象是一個單身人士,以便我可以從我的應用程序的任何地方訪問同一個實例。這是我想出了迄今:單身人士在iOS用戶默認
+(id)sharedManager {
static SECTUser *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
-(id)init{
if (self = [super init]) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *savedToken = [ defaults objectForKey: @"token" ];
NSString *savedName = [ defaults objectForKey: @"name" ];
if(savedToken && savedName){
_token = savedToken;
_name = savedName;
}
}
return self;
}
的sharedManager被用於創建單,並在init應該只裝載值首次和第一實例。
這是實現想要的行爲的正確方法嗎?有什麼方法可以檢查這個工作是否正常?
在此先感謝。
謝謝。那麼如果我不能初始化它,我該如何從代碼中的任何地方使用該類? – user3060636
您可以通過使用sharedManager方法獲取對象來使用該類。它只是阻止init方法。所以,沒有人在外面創建你的課程的實例。 – Apurv
非常感謝。我知道它超出了範圍,但是,你能提供一個例子嗎?通過以下方式將您的答案標記爲正確:) – user3060636