0

我在 NSUserDefaults 中有用于登录的名称和密码。如果应用程序中没有存储密码或名称,我在我的 1stTab View.m 类中有这个来测试存在并以模态方式加载登录/注册 loginView.xib。

这是默认值的拉取:

-(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 回答