NSUserDefaults неправильно сохраняются - PullRequest
0 голосов
/ 06 июля 2011

Я новичок в программировании, и у меня есть следующая проблема, с которой я надеялся, что кто-то может помочь.У меня есть приложение, которое использует логин для доступа к главному меню.Я хотел бы, чтобы приложение сохраняло имя пользователя (с экрана входа в систему) и использовало его в программе.Если пользователь уже вошел в систему, ему не нужно снова входить в систему, никогда.Я хочу, чтобы приложение проверяло, вошел ли пользователь при запуске, и сразу переходит в меню, если оно есть.

В настоящее время у меня проблема: если они нажимают кнопку входа, они сразу переходят в главное меню безввод логинаЕсли они вводят свое имя, я могу использовать их имя в приложении, пока приложение не будет перезапущено и информация не исчезнет.

Хорошо, вот мой новый код, но у меня все еще есть та же проблема.

-(IBAction)LogInButton:(id)sender {

    NSString *tempstr = [[NSUserDefaults standardUserDefaults]      objectForKey:@"username"];

    if (tempstr.length == 0) {
        NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
        [prefs setObject:name.text forKey:@"username"];
        [prefs synchronize];
        [self showCorrectController];

        ClubFindViewController *logView = [[ClubFindViewController alloc]     initWithNibName:@"ClubFindViewController" bundle:nil];
        [self presentModalViewController:logView animated:YES];
    }
    else {
        MainMenuView *mainView = [[MainMenuView alloc]     initWithNibName:@"MainMenuView" bundle:nil];
        [self presentModalViewController:mainView animated:YES];
    }
}

-(void)viewDidLoad {
    [super viewDidLoad];
    [self showCorrectController];
}

-(void)showCorrectController {
    UIViewController *viewController = nil;

    if ([self isLoggedIn]) {
        viewController = [[MainMenuView alloc] init];
    }
    else {
        viewController = [[ClubFindViewController alloc] init];
    }

    [self presentModalViewController:viewController animated:YES];
    [viewController release];
     viewController = nil;
}

-(BOOL)isLoggedIn {
    return ![[NSUserDefaults standardUserDefaults] objectForKey:@"username"];
}

Любая помощь будет очень признательна.Спасибо.

1 Ответ

0 голосов
/ 06 июля 2011

In -(IBAction)LogInButton:(id)sender { Вы должны проверить, если они ввели текст, если нет, запросите снова.В вашем случае, если пользователь нажимает «Логин» без ввода имени, значение «имя пользователя» будет содержать пустую строку и логин будет проходить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...