目的 c (iPhone アプリ用) でログイン システムを作成しています。ユーザーがログインしているかどうかを記録したいと思います。これを行う最善の方法はBOOL isLoggedIn
、資格情報を検証した後でグローバル変数を使用することだと考えました。これを行う方法が完全にわからなくなったので、誰かが私を助けてくれたり、アドバイスをくれたりできますか.
前もって感謝します
目的 c (iPhone アプリ用) でログイン システムを作成しています。ユーザーがログインしているかどうかを記録したいと思います。これを行う最善の方法はBOOL isLoggedIn
、資格情報を検証した後でグローバル変数を使用することだと考えました。これを行う方法が完全にわからなくなったので、誰かが私を助けてくれたり、アドバイスをくれたりできますか.
前もって感謝します
NSUserDefaults を使用して、他の人が述べたようにアプリのログイン状態を保存できます。アプリが削除されるまで、値はそのまま残ります。つまり、最後の値が「ログイン」されていれば、アプリを強制終了したり、デバイスを再起動したりしても。
アプリが強制終了されたとき、またはデバイスが再起動されたときにユーザーの状態を「リセット」したい場合は、ユーザーのオブジェクトをシングルトンにする別の方法があります。アプリが強制終了されるか、デバイスが再起動されると、NSUserDefault とは異なり、ユーザーの状態がリセットされ (オブジェクトが存在しなくなるため)、ユーザーは再度ログインする必要があります。このメソッドを使用: http://lukeredpath.co.uk/blog/a-note-on-objective-c-singletons.htmlユーザーのオブジェクトのシングルトンを作成する
+ (id)sharedInstance
{
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init]; // or some other init method
});
return _sharedObject;
}
上記をユーザーのクラスに追加すると、ユーザーの状態に関連する適切なプロパティ (BOOL isLoggedOn など) を追加でき、次の行に沿ってこれにアクセスできます。
BOOL isLoggedIn = [[User sharedInstance] isLoggedIn];
この2つの機能を使用してください
-(void)addToNSUserDefaults:(id)pobjValue forKey:(NSString *)pstrKey{
NSUserDefaults *objUserDefaults = [NSUserDefaults standardUserDefaults];
[objUserDefaults setObject:pobjValue forKey:pstrKey];
[objUserDefaults synchronize];
}
-(id)fetchFromNSUserDefaults:(NSString *)pstrKey{
NSUserDefaults *objUserDefaults = [NSUserDefaults standardUserDefaults];
return [objUserDefaults objectForKey:pstrKey];
}
収納すると
[self addToNSUserDefaults:@"YES" forKey:@"isLoggedIn"];
取り出すとき
if ([self fetchFromNSUserDefaults:@"isLoggedIn"]==nil || [[self fetchFromNSUserDefaults:@"isLoggedIn"] isEqualToString:@""]) {
//Go to Login
}
else
//all ready Login
-(void)saveToUserDefaults:(BOOL)isLoggedIn
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setBool:isLoggedIn forKey:@"isLoggedIn"];
[standardUserDefaults synchronize];
}
}
NSUserDefaults を使用すると、アプリが電話から削除されるまで値が保持されます。