2012-03-30 6 views
1

아래 코드 (AppDelegate 파일에서)를 사용하여 로그인 한 Facebook 사용자 이름을 NSUserDefaults 환경 설정에 저장합니다. 이 코드는 사용자 이름을 검색하여 콘솔에 출력합니다. 다른보기 컨트롤러에서 동일한 작업을 수행하려고하면 NSLog 출력이 반환됩니다 (null).NSUserDefaults에서 데이터 가져 오기 - 한보기에서 작동하지만 다른 사람에서 오류가 발생합니다.

무엇이 누락 되었습니까? 어떤 도움을 주셔서 감사합니다.

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

여기에 로그 출력입니다 : 여기

- (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); 
    } 
}; 

가 작동하지 않는 다른 뷰 컨트롤러의 코드입니다

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

#import "AppDelegate.h"를보기 컨트롤러에 추가했는데 모두 정상입니다. – hanumanDev

답변

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

보십시오이 (난 그냥 하나를 변경 라인)

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

편집 이것은 NSUserDefaults에 저장하는 방법입니다.

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

그리고 때마다/나는 그것을

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

한번에 검색 할 whereever : 설정 및 위해

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

을 :

을 얻기를위한
[[NSUserDefaults standardUserDefaults] valueForKey:@"Username"]; 

. 아무 수입도, 아무것도!

[[NSUserDefaults standardUserDefaults] synchronize]; 

이 당신의 기본값은 당신이 그들에게 다음 번에 검색 할 수 있도록 파일에 쓸 것

+0

NSString * 사용자 = [standardUserDefaults objectForKey : @ "Username"]을 설정하여이 글을 쓰고있었습니다. 두번. doh! – hanumanDev

0

일반적인 실수는 .. 전화를 잊고하거나 기본값을 저장 모르고있다.

관련 문제