类不是密钥的编码兼容键

时间:2013-10-04 17:20:26

标签: ios storyboard

我的应用在启动时崩溃,出现以下错误:

  

由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不是密钥tableViewChannels的密钥值编码兼容。

这是一个我继承并重新工作的项目。我最初认为tableViewChannels是一个旧数组,但我在XCode中搜索了整个项目,并没有出现在任何地方。

我使用我最喜欢的文本编辑器进入故事板来查看原始XML,并且确实找到了两个“tableViewChannels”实例,它们似乎是旧的IBOutlets(它们实际上不再出现在可视化故事板中)。我删除了两个,保存,清理了构建文件夹,重新启动了XCode,并且仍然崩溃了完全相同的错误。我很困惑这个代码仍然潜藏在项目中。我感谢任何帮助。谢谢!

4 个答案:

答案 0 :(得分:4)

我不完全确定但是这个问题可能是因为你的storyboard / xib中必须有一个IBOutlet,它是早期连接的变量,但后来这个变量被删除了..请通过每个xib,看看你是否有这个..否则更好的方法是..在xcode中键入“tableViewChannels”..选择任何尝试折射它的单词..这将列出它将重构的所有文件..包括xibs。 :)这样你就可以确定tableViewChannels是否存在于任何ur xibs

答案 1 :(得分:1)

通过搜索终端中的项目目录,您可以看到Xcode是否有任何仍包含“tableViewChannels”的元数据文件:

cd [path to project]
grep -r --include='*' tableViewChannels .

答案 2 :(得分:1)

通过三个步骤轻松解决:

  1. 在故事板文件中进行二次点击,在我的情况下是“Storyboard.storyboard”   点击“打开为”,然后点击“源代码”

  2. 在键盘上按“Command”+“F”,找到键,本例中为“tableViewChannels”

  3. 找到后,选择该行并将其删除。

  4. 如前所述,故事板中的连接存在问题,尝试连接已删除或不存在的属性。几乎总是,该属性存在并被删除,而不知道它将使用故事板对您的应用程序造成的崩溃。

答案 3 :(得分:0)

有同样的问题,没有要删除的出口,这只是一个XCode问题,可以通过删除“派生数据”并清理项目来解决。