2015-02-25 4 views
0

Я создаю приложение iOS, и мне нужно предоставить функцию забытого пароля. У меня есть db, в котором хранятся зарегистрированные пользователи и их данные (userArray). Я искал по электронной почте, введенной так, Как мне сделать UIAlert, который показывает найденный пароль ??? ниже - код, который я пробовал, но мое условие не соответствует действительности.Забыли пароль? Объект C

[self.theuser valueForKey: @ "password"] - это полученный пароль из базы данных и ее строки.

- (IBAction)ForgotPassword:(id)sender { 


    if ([[self.theuser valueForKey:@"password"] > 0 ]) { 

     UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"Success" 
                 message: @"Your Password is:" 
                 delegate: self 
              cancelButtonTitle:@"Ok" 
                 otherButtonTitles:nil]; 
     [alert show]; 
    } 
+5

Пожалуйста см «[? Почему хранения обычного текста пароля плохо] (http://plaintextoffenders.com/faq/devs)» на plaintextoffenders. ком. – ruakh

+0

Точка, которую сделал @ruakh, не может быть подчеркнута достаточно сильно. Почти всегда неплохо хранить пароли в текстовом виде. – sbooth

ответ

0

Изменение:

@"Your Password is:" 

к:

[NSString stringWithFormat:@"Your Password is: %@", [self.theuser valueForKey:@"password"]] 

Вы можете также изменить это:

if ([[self.theuser valueForKey:@"password"] > 0 ]) { 

к этому:

if ([self.theuser valueForKey:@"password"]) { 

Если этого не произошло, оно будет считаться «ложным». Любое другое значение - «true».

+0

Спасибо ... это сработало! – yasmin

1

Вы должны проверить, что длина строки больше, чем 0, так как с помощью этого:

if ([self.theuser valueForKey:@"password"]) 

всегда будет возвращать истинное если значение кроме ноль, то есть, если вы сервер код возвращает, что значение пароля «» (две кавычки без пробела между ними), то приложение будет признать, что значение не ноль и отображать уведомление без текста в нем

Таким образом, окончательный код должен выглядеть примерно так:

- (IBAction)ForgotPassword:(id)sender { 

    NSString *retrievedPassword = [self.theuser valueForKey:@"password"]; 

    if (retrievedPassword.length > 0) { 
     NSString *message = [NSString stringWithFormat:@"Your password is: %@", retrievedPassword]; 
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"Success" 
                 message: message 
                 delegate: self 
              cancelButtonTitle:@"Ok" 
              otherButtonTitles:nil]; 
     [alert show]; 
    } 
} 
+0

Можно ли выделить извлеченные данные на метку? метка объявляется как парольLabel – yasmin

+0

уверен, просто замените код предупреждения внутри **, если ** для 'passwordLabel.text = message;' –

Смежные вопросы