2012-03-30 12 views
1

Ich speichern den angemeldeten Facebook-Benutzernamen zu den NSUserDefaults Einstellungen mit dem folgenden Code (aus der AppDelegate-Datei). Der Code ruft den Benutzernamen ab und gibt ihn an die Konsole aus. Wenn ich versuche, dasselbe in einem anderen View-Controller zu machen, gibt die NSLog-Ausgabe (null) zurück.Abrufen von Daten von NSUserDefaults - funktioniert in einer Ansicht, schlägt aber in einer anderen

Was fehlt mir? Danke für jede Hilfe.

- (void)request:(FBRequest *)request didLoad:(id)result { 
    if ([result isKindOfClass:[NSDictionary class]]) { 
     NSDictionary* hash = result; 
     NSString *username = (NSString*)[hash valueForKey:@"name"]; 
     [[NSUserDefaults standardUserDefaults] setObject:username forKey:@"Username"]; 
     NSLog(@"%@", username); 
     NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
     NSString *user = [standardUserDefaults stringForKey:@"Username"]; 
     NSLog(@"username from user defs %@",user); 
    } 
}; 

Hier ist der Code von der anderen View-Controller ist das nicht funktioniert:

NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
NSString *user = [standardUserDefaults stringForKey:@"Username"]; 
NSLog(@"username from user defs %@",user); 
userNameLbl.text = user; 

Hier ist die Log-Ausgabe:

username from user defs app delegate my Facebook name 
2012-03-30 13:29:20.564 project V2[63339:15803] (null) 
2012-03-30 13:29:20.565 project V2[63339:15803] username from user defs app delegate (null) 
2012-03-30 13:29:28.620 project V2[63339:15803] username from user defs (null) 
+0

Ich habe #import "AppDelegate.h" zum View-Controller hinzugefügt und alles ist in Ordnung. – hanumanDev

Antwort

2
NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
NSString *user = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"]; 
NSLog(@"username from user defs %@",user); 
userNameLbl.text = user; 

Versuchen Sie, diese (änderte ich nur ein Linie)

NSString *user = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"]; 

BEARBEITEN So speichere ich Dinge in NSUserDefaults;

NSString *theKeyIWantToSave; 
NSUSerDefaults *defaults=[NSUserDefaults standardUserDefaults]; 
[defaults setObject:theKeyIWantToSave forKey:@"SomeKey"]; 

Und wenn/wo auch immer ich es

NSString *key=[[NSUserDefaults standardUserDefaults] objectForKey:@"SomeKey"]; 
1

Versuchen abrufen möchten:

[[NSUserDefaults standardUserDefaults] setValue:newStr forKey:@"Username"]; 

zur Einstellung und:

[[NSUserDefaults standardUserDefaults] valueForKey:@"Username"]; 

für sie zu bekommen. Keine Importe, nichts!

+0

Ich war es zu schreiben, indem ich den NSString * user = [standardUserDefaults objectForKey: @ "Benutzername"]; zweimal. Dah! – hanumanDev

0

Ein häufiger Fehler ist, zu vergessen oder nicht zu wissen, Ihren Vorgaben .. Anruf zu speichern:

[[NSUserDefaults standardUserDefaults] synchronize]; 

Dies wird Ihre defaults write Datei so dass Sie sie beim nächsten Mal abzurufen.

Verwandte Themen