此类不是密钥登录的密钥值编码兼容

时间:2013-12-04 10:20:53

标签: ios iphone objective-c storyboard

我通过简单的登录屏幕遇到了这个问题。我在stackoverflow中搜索过,我找到了一些解决方案,但对我来说都有用。

View Controller只有两个UITextfield和一个按钮,我已全部连接:

enter image description here

这是我的LoginController.h:

enter image description here

这就是它失败的地方:

enter image description here

我最近添加了这个新控制器,我的意思是,根视图之前是其他视图,但最后,我需要在此之前登录。

控制台日志:

enter image description here

谢谢。

6 个答案:

答案 0 :(得分:2)

问题似乎与XIB /故事板无关。您正在尝试为类login中名为KeyValueLogin的属性设置值。看起来这个属性没有在类中声明。

API setValue:forKey:NSKeyValueCoding protocol中定义。您的崩溃日志表明了这一事实,

[<KeyValueLogin> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key login

表示在类中找不到该属性。

您的代码应为

loginInfo.key    = @"login";
loginInfo.value  = @"guest";

希望有所帮助!

答案 1 :(得分:2)

应该像

loginInfo.key = @"login";
loginInfo.value = @"quest";

答案 2 :(得分:1)

您没有调用正确的方法。该方法在每个NSObject上声明(请参阅here)。如果您想了解更多关于它的作用,请查看键值观察。你想要的是这个:

loginInfo.key = @"login";
loginInfo.value = @"guest";

答案 3 :(得分:1)

让它成为

[loginInfo setValue:@"guest"];

[loginInfo setValue:@"guest" forKey:@"login"];

因为您需要访问名为“value”的属性

你正在尝试访问名为“login”的属性

答案 4 :(得分:0)

我不知道你想要做什么,但如果你让我们说KeyValueLogin类的属性让我们说

@property(nonatomic, copy) NSString *login;

您可以像

一样访问它
loginInfo.login    = @"your login";

[loginInfo setValue:@"your login" forKey:@"login"];

您使用:

[loginInfo setValue:@"guest" forKey:@"login"];

您必须在KeyValueLogin中声明属性登录才能执行此操作。

这是你要追求的东西吗?

答案 5 :(得分:0)

请检查您尝试加载的.xib文件

  

initWithNibName

过程。

如果你复制了&amp;从其他来源过去通常是问题。