0

ログイン用の NSUserDefaults に名前とパスワードがあります。アプリにパスワードや名前が保存されていない場合、存在をテストし、ログイン/サインアップ loginView.xib をモーダルにロードするために、これを 1stTab View.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' が原因でアプリを終了します。理由: '[ setValue:forUndefinedKey:]: このクラスはキー usernameLabel のキー値コーディングに準拠していません。

4

1 に答える 1

0

あなたが説明したエラーは NSUserDefaults とは関係ありません。クラス(FirstTabViewController)がusernameLabelのキー値コーディングに準拠していないと言っています。

私の推測では、IBOutlet usernameLabel を定義したが、xib に接続していないか、何らかの理由で usernameLabel が nil になっていると思われます。

于 2010-06-08T14:09:25.437 に答える