我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
导致这种情况的另一个原因是,您声明该属性实现为@dynamic,但类无法在父类中找到它。
其他回答
对我来说。合并后,xib文件中没有丢失的输出。
Shift + Command + K
解决了我的问题。我清理了我的项目并重建。
我有这个发生时,我有一个UIView链接到一个故事板和连接IBOutlet像:
@property (strong, nonatomic) IBOutlet UIView *someView
但是后来,我把UIView做成了一个自定义类,但是忘记改变上面定义的IBOutlet的类名。这是一个奇怪的错误,因为如果自定义视图没有子视图,它不会抱怨,但只要有子视图,它就会显示问题中陈述的错误,但在其中一个子视图上,而不是在问题实际存在的外部UIView上。让我删除和读取所有的子视图试图找到问题,而实际上与子视图无关
"这个类不符合键值编码" 我知道有点晚了,但我的答案是不同的,所以我认为它需要张贴,我推错了第二个控制器的方式,这里是样本
错误的推控制器方式
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];
我没有找到如上的答案,所以它可能可以帮助一些有同样问题的人
如果你有一个带有iboutlet的自定义UIViewController子类,它会导致问题,我发现唯一能消除错误的步骤是
1 .修改类为UIViewController
断开所有的插座(它们现在都有黄色警告三角形)-仅仅断开有问题的插座可能就足够了。
.3执行所有标准步骤-↑⌘K,删除派生数据(,祈祷垫,担忧珠)
.4启动应用程序-进入有问题的场景。
.5关闭应用程序,返回接口生成器,将类更改为自定义类名。
6重新连接电源插座。
启动应用程序&这通常会清除键值遵从性问题。
我不得不从模拟器/iPhone中删除应用程序来消除这个错误。