2010-01-25 2 views
1

내 응용 프로그램에서 NSUserDefaults 개체를 사용하여 기본 제공 설정 응용 프로그램에 사용자 이름, 암호 및 서버 URL을 저장하고 있습니다. 저장된 데이터가 없으면 사용자에게 로그인 인터페이스가 제공되고 로그인이 성공하면 사용자 이름과 비밀번호가 저장됩니다. 그런 다음 내 응용 프로그램에서이 정보를 표시하는보기가 있지만 데이터가 아직 설정에 저장되지 않은 것처럼 텍스트가 누락되었습니다. 여기에 코드입니다 :iphone 설정 응용 프로그램 유지 데이터

... 
NSUserDefaults* appSettings = [NSUserDefaults standardUserDefaults]; 
[appSettings setObject:username forKey:USERNAME]; 
[appSettings setObject:password forKey:PASSWORD]; 

if ([appSettings synchronize]) { 

    // display an alert with a positive message 
} else { 
    // display an alert with a negative message 

} 

그래서, 긍정적 인 메시지에 로그인 한 후 표시되지만 내가 데이터를 가져올 때이 응용 프로그램을 다시 시작하지 않는 한 다시 아무것도,이 없다.

데이터를 즉시 저장하거나 적어도 다른보기 컨트롤러가 설정을 읽어야하기 전에해야 할 일은 무엇입니까?

답변

2

NSUserDefaults 개체는 해당 데이터를 메모리에 저장하며 전역 개체입니다 (어쨌든 응용 프로그램에 대한 것임). 따라서 거기에 저장하는 모든 항목은 나중에 액세스하려고 시도하는 항목에 즉시 사용할 수 있어야합니다. 여기에서 동기화를 호출 할 필요가 없습니다. 데이터를 가져 오지 못한다면 전화 주문을 확인하여 전화가 걸렸을 때 전화를 걸 었는지 확인해야합니다.

+0

아하! 따라서 컨트롤러 중 하나에서 awakeFromNib 메서드의 설정 데이터를 가져옵니다. 나는 그 메소드에서 중단 점을 설정하고 immediatly라고 불리는 것을 보았습니다. 사용자가 특정 뷰를 포함하는 탭을 클릭 할 때 모두 호출 될 것입니다. awakeFromNib에는 정적 데이터를 생성하는 외부 코드가 있지만 viewDidLoad로 이동합니다. 감사합니다. Ben! – Lex

관련 문제