2013-12-17 44 views
0

我有类Prefs.m与方法:NSUserDefault无法加载首选项

+ (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"]; 

但是当我加载在首选项中class IndicationViewController.m:

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

返回值= 0.但是在set prefs中,值是1.为什么?

+1

它看起来像你设置一个字符串,但找回的整数。 –

+0

什么是'偏好设置getInteger:'方法是什么样子?你正在为key @“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