将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误
Posted
技术标签:
【中文标题】将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误【英文标题】:"This class is not key value coding-compliant for the key" error when changing project from storyboard to xib files 【发布时间】:2012-08-02 03:58:56 【问题描述】:我在开始使用故事板和 xib 文件的项目中取得了很大进展。然后我决定将其全部更改为 xib 文件,以便 5.0 之前的固件可以使用它们。我在这样做时遇到了一些麻烦,所以我创建了一个新项目并开始复制 xib 文件的所有代码和内容。但是,当我运行该项目时,调试器给了我错误“这个类不符合 key gameStarts 的键值编码”(出口名称)。我已经尝试从 DerivedData 文件夹中清除所有目标,重置我的 ios 模拟器,并检查指定 xib 文件的连接检查器以查找稀有出口,但似乎没有任何效果。我已经搜索了几个小时没有成功。帮助将不胜感激。
【问题讨论】:
它可能意味着某处的实例(视图控制器等)没有正确设置其类名。这将导致它在运行时使用较小的类型(例如默认UIViewController
)进行实例化,这当然没有您的自定义方法,因此您自己的密钥不符合 KVO。
您的回答听起来不错,但视图控制器不是通过文件所有者设置为它的相应类吗?因为我检查了身份检查器,并且 xib 的文件所有者已连接到相应的类。
您在设置控制器时是否使用.xib
文件引用?例如,在选项卡视图中,如果您将选项卡的视图控制器设置为另一个 .xib
文件中的内容,则必须在 both 选项卡的设置 和中设置自定义视图控制器子类> 另一个.xib
文件。
【参考方案1】:
.xib 文件似乎有一个对 gameStarts 的出口引用,但在控制器文件中,没有 IBOutlet 属性 gameStarts。检查您是否在 xCode 4 中正确设置它的最简单方法是切换到 xib 文件,选择文件的所有者,单击类名右侧的三角形。这应该将您带到类文件。我之前也遇到过类似的问题,都是引用不正确造成的。
并在xib文件中找到连接到gameStarts的元素,将其重新连接到您的控制器。我猜你会从故事板文件中复制界面。
【讨论】:
以上是关于将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误的主要内容,如果未能解决你的问题,请参考以下文章