我通过简单的登录屏幕遇到了这个问题。我在stackoverflow中搜索过,我找到了一些解决方案,但对我来说都有用。
View Controller只有两个UITextfield和一个按钮,我已全部连接:
这是我的LoginController.h:
这就是它失败的地方:
我最近添加了这个新控制器,我的意思是,根视图之前是其他视图,但最后,我需要在此之前登录。
控制台日志:
谢谢。
答案 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;从其他来源过去通常是问题。