我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
我犯了个愚蠢的错误。所以我决定在这里分享,希望这能帮助到其他像我一样的人。
我在我的项目中有另一个子模块,我在主模块中命名了一个与另一个类同名的新类,我的新类没有xib文件(100%由代码),但主模块中的另一个类有xib文件。我认为Xcode在主模块中的xib文件错误地链接了新类。
坠机的原因与消息:
这个类对于键tableView来说不符合键值编码。
其他回答
确保你在.m文件中添加了自定义类的实现(甚至是空的),如下所示:
@implementation MySubclass
@end
我也有这个问题,这是由于重命名一个视图通过创建一个新的出口。你可能在故事板中有旧的连接出口。
您需要做的是从故事板中删除旧的出口。
转到故事板。 点击“Show Code Review”按钮(上面有<- ->符号的按钮,就在Show /hide导航器的左边)。 搜索“connections”标签。 在“connections”标签中寻找“outlet”标签,并将“property”属性设置为您在Exception中获得的名称。 去掉那个出口标签。 点击“Command + B”,享受吧!
"这个类不符合键值编码" 我知道有点晚了,但我的答案是不同的,所以我认为它需要张贴,我推错了第二个控制器的方式,这里是样本
错误的推控制器方式
UIViewController* controller = [[UIViewController
alloc]initWithNibName:@"TempViewController" bundle:nil];
[self.navigationController pushViewController:controller animated:true];
正确的方法
TempViewController* controller = [[TempViewController
alloc]initWithNibName:@"TempViewController" bundle:nil];
[self.navigationController pushViewController:controller animated:true];
我没有找到如上的答案,所以它可能可以帮助一些有同样问题的人
我在用沙玛林。IOS来创建自定义nib。最后我找到了根本原因,去Xcode,选择nib文件,在接口构建器中,选择UIView类,选择连接检查器,并删除默认的出口,如下所示。
对我来说。合并后,xib文件中没有丢失的输出。
Shift + Command + K
解决了我的问题。我清理了我的项目并重建。