我正在尝试将UILabel
与我班级中创建的IBOutlet
。
我的应用程序崩溃,出现以下错误。这是什么意思?我该如何解决?
*** 由于未捕获的异常'NSUnknownKeyException' 终止应用程序,原因:'[
setValue:forUndefinedKey:]:此类不是密钥 XXX 的密钥值编码。
我多次犯过这个错误。虽然在这种情况下 TechZen 的答案绝对正确,但另一个常见原因是当您更改 .h / .m 中的 IBOutlet 属性的名称时 ,您已经将其连接到笔尖中的文件所有者。
从您的笔尖:
在 “引用 Outlets” 下,确保您的对象仍未连接到旧属性名称... 如果是, 请单击小 “x” 以删除引用并再次构建。
如果您使用 Storyboard 是另一个常见原因,您的 UIButton 可能有多个分配(解决方案几乎与 nib 相同):
我下载了你的项目。
你得到的错误是
'NSUnknownKeyException',原因:'[
setValue:forUndefinedKey:]:此类不是密钥值的密钥值编码兼容。
它是由MainWindow.xib
中的Second
视图控制器引起的,它具有一个UIViewController
类而不是SecondView
。更改为正确的类可以解决问题。
顺便说一句,在 Objective-C 中使用像 “string” 这样的名称是不好的做法。它会引发运行时命名冲突。即使在一次性练习应用程序中也避免它们命名冲突很难追查,你不想浪费时间。
此错误的另一个可能原因是:当将元素从一个控制器复制并粘贴到另一个控制器时,Xcode 会以某种方式将该链接保留到原始控制器,即使在编辑并将此元素重新链接到新控制器之后也是如此。
此错误的另一个可能原因:
坏口。
您已在.h
文件中删除或重命名了插座名称。
在删除它.xib
或.storyboard
文件的连接检查。
我不得不从模拟器 / iPhone 中删除该应用程序以摆脱此错误。