2010-06-08 4 views
0

로그인을 위해 NSUserDefaults에 이름과 암호가 있습니다. 내 1stTab View.m 클래스에 존재 여부를 테스트하고 응용 프로그램에 암호 또는 이름이 저장되어 있지 않으면 login/signup loginView.xib을 모달로드합니다. 여기 LoginView를로드하기위한 첫 번째 Tab.m의 비밀번호 테스트에서 클래스 오류가 발생합니까?

가 기본값으로 당겨 : 여기
-(void)refreshFields { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    usernameLabel.text = [defaults objectForKey:kUsernameKey]; 
    passwordLabel.text = [defaults objectForKey:kPasswordKey]; 
{ 

는 테스트입니다 :

- (void)viewDidAppear:(BOOL)animated { 
     [self refreshFields]; 
     [super viewDidAppear:animated]; 

    if ([usernameLabel.text length] == 0 || [passwordLabel.text length] == 0) 
{ 
    LoginViewController * vc = [[[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil] autorelease]; 
    [self presentModalViewController:vc animated: false]; 
} 
else 
{ 
    [[self tableView ]reloadData]; 
} 

} 사전에

감사합니다, 나는 콘솔에서이 오류를 받고 있어요 :

*** 캐치되지 않은 예외 'NSUnknownKeyException'로 인해 앱 종료 중, 이유 : '[s etValue : forUndefinedKey :] :이 클래스는 키 usernameLabel에 대해 키 값 코딩을 준수하지 않습니다. '

답변

0

설명하는 오류는 NSUserDefaults와 관련이 없습니다. 클래스 (FirstTabViewController)가 usernameLabel에 대해 키 값 코딩을 코딩하지 않는다고 말하고 있습니다.

내 생각 엔 IBOutlet usernameLabel을 정의했지만 xib에 연결하지 않았거나 다른 이유로 usernameLabel이 nil이 아닙니다.

+0

NSLog (@ "userName Label : % @", usernameLabel.text)를 입력합니다. 테스트 후, 이것은 (null)로 반환됩니다. 이것은 비어 있습니다. 앱을 처음 시작할 때 반환이 'nil'이되지 않아야합니다. 이 FirstTab에 대한 xib가 없으므로 usernameLabel에 대해 IBOutlet을 꺼 냈습니다. 여전히 같은 오류가 발생합니다. –

+0

IBOutlet이 없었지만 이전 연결로 인해이 문제가 발생할 수있는 곳에 다른 곳에서 읽었습니다. 이전 레이블 연결을 삭제 했으므로 이제로드됩니다. 나를 올바른 방향으로 가리켜 주셔서 감사합니다. –