-1

目的 c (iPhone アプリ用) でログイン システムを作成しています。ユーザーがログインしているかどうかを記録したいと思います。これを行う最善の方法はBOOL isLoggedIn、資格情報を検証した後でグローバル変数を使用することだと考えました。これを行う方法が完全にわからなくなったので、誰かが私を助けてくれたり、アドバイスをくれたりできますか.

前もって感謝します

4

3 に答える 3

1

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];
于 2013-06-03T06:56:31.530 に答える
1

この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
于 2013-06-03T06:40:31.383 に答える
1
-(void)saveToUserDefaults:(BOOL)isLoggedIn
{
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

    if (standardUserDefaults) {
        [standardUserDefaults setBool:isLoggedIn forKey:@"isLoggedIn"];
        [standardUserDefaults synchronize];
    }
}

NSUserDefaults を使用すると、アプリが電話から削除されるまで値が保持されます。

于 2013-06-03T06:34:30.830 に答える