2013-12-17 3 views
0

У меня есть класс Prefs.m с методами:NSUserDefault не нагружать PREFS

+ (void) setString:(NSString *)valor chave:(NSString *)chave{ 

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

    [prefs setObject:valor forKey:chave]; 

    [prefs synchronize]; 
} 

+ (NSString *) getString:(NSString *)chave{ 

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

    NSString *valor = [prefs stringForKey:chave]; 

    return valor; 
} 

И я поставил предпочтение в классе LoginController.m:

//Guarda informações do usuário no NSUserDefault 
    [Prefs setString:strID chave:@"prefID"]; 
    [Prefs setString:usrNome chave:@"prefNome"]; 
    [Prefs setString:usrEmail chave:@"prefEmail"]; 

Но когда я загрузить преф в класс IndicationViewController.m:

//Busca por informações do usuário se não tem o ID na prefs 
int intID = [Prefs getInteger:@"prefID"]; 

Возвращаемое значение = 0. Но в заданных префов, значение было 1. Почему?

+1

Похоже, вы устанавливаете строку, но получить обратно целое число. –

+0

Как выглядит метод 'Prefs getInteger:'? Вы устанавливаете строку для ключа @ prefID и пытаетесь вытащить int. – nhgrif

+0

Также вы можете показать, как вы устанавливаете 'strID'? – nhgrif

ответ

2

Изменить это:

int intID = [Prefs getInteger:@"prefID"]; 

Для этого:

int intID = [[Prefs getString:@"prefID"] intValue]; 

Или это:

NSString *prefID = [Prefs getString:@"prefID"]; 
+0

Большое спасибо ... Это правильно! – user3093622

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