我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
我犯了个愚蠢的错误。所以我决定在这里分享,希望这能帮助到其他像我一样的人。
我在我的项目中有另一个子模块,我在主模块中命名了一个与另一个类同名的新类,我的新类没有xib文件(100%由代码),但主模块中的另一个类有xib文件。我认为Xcode在主模块中的xib文件错误地链接了新类。
坠机的原因与消息:
这个类对于键tableView来说不符合键值编码。
其他回答
还有其他问题,你可以在其他答案中看到。 我为自己创建这个错误的方式是,我从头开始一个项目,首先删除故事板的初始场景,然后将另一个项目的场景粘贴到我的故事板中。
那样做没有问题。你只需要在你的故事板中添加一个入口点,也就是检查你喜欢的任何视图控制器上的初始视图控制器。否则它将是一个灰色的场景,并向您抛出一个错误。
我收到了完全相同的错误信息,感谢http://www.idev101.com的Kira,我能够解决这个挑战。我是在谷歌搜索了所有这些线索后才找到她的网站的。我现在在这里发布下一个来到StackOverFlow的帖子,并且有同样的挑战,因为那个人最有可能通过谷歌来到这个线程。
我意识到,我错了:
UIViewController *deviceViewController = [[UIViewController alloc] initWithNibName:@"DeviceViewController" bundle:nil];
而不是这样:
DeviceViewController *deviceViewController = [[DeviceViewController alloc] initWithNibName:@"DeviceViewController" bundle:nil];
在哪里
DeviceViewController
我的类名也被称为
DeviceViewController.h
DeviceViewController.m
你必须得
"import DeviceViewController.h"
在您的实现中(。m文件),你想调用例如另一个UIViewController。
如果我只是说明了像我这样的初学者,我绝对不会感到抱歉,因为这与问题并不完全相关,但我已经连续搜索了4个小时(?!?)来寻找这些错误消息的答案。如果我能把这个留给一两个人,那就太好了:)
PS:对于那些对如何继续加载其他UIViewController的代码感兴趣的人:
[self presentViewController:deviceViewController animated:YES completion:nil];
当我的视图控制器最初有一个.xib文件时,这种情况发生在我身上,但现在是以编程方式创建的。
尽管我已经从这个项目中删除了.xib文件。用户的iPhone/iPad可能包含这个视图控制器的.xib文件。
尝试加载.xib文件通常会导致以下崩溃:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x18afe0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key welcomeLabel.'
以编程方式创建时的解决方案可能是这样的:
-(void)loadView {
// Ensure that we don't load an .xib file for this viewcontroller
self.view = [UIView new];
}
在我的情况下,这是一个错误在故事板源代码,遵循以下步骤:
首先以源代码的形式打开故事板 搜索<connections> 删除不需要的连接
例如:
<connections>
<outlet property="mapPostsView" destination="4EV-NK-Bhn" id="ubM-Z6-mwl"/>
<outlet property="mapView" destination="kx6-TV-oQg" id="4wY-jv-Ih6"/>
<outlet property="sidebarButton" destination="6UH-BZ-60q" id="8Yz-5G-HpY"/>
</connections>
如你所见,这些是你的代码变量名和storyboard布局xml标签之间的连接;)
我也有这个问题。我将带有IBOutlet的视图从一个xib文件复制到另一个xib文件。即使我已经删除了旧的引用并创建了一个新的引用,这个错误仍然发生。
我最终重新启动xcode来解决这个问题。