重命名类会导致IBOutlet连接失败

时间:2016-07-07 22:06:31

标签: ios swift storyboard uilabel iboutletcollection

我重命名了一个类,它碰巧与故事板文件中名为 mainLabel 的标签有一个插座连接。当我运行我的程序时,它崩溃并给我错误:“这个类不是键值mainLabel的键值编码兼容”。

其他SO答案显示这是由于出口连接不良造成的,所以我删除了连接并删除了任何丢失的端点。当我尝试将标签重新连接到我的代码中的插座时,出现错误无法插入新的插座连接: 无法找到名为CourseTableViewCell的类的任何信息

其他SO答案提供了我尝试过但没有奏效的解决方案,包括:

  • 删除对文件的引用并重新添加
  • 清洁项目
  • 删除衍生数据文件夹
  • 删除标签并重新添加
  • 从代码拖到故事板而不是反之亦然

我确保在“自定义类”下的身份检查器中列出了正确的文件名。如果有人有任何其他想法,请告诉我!

如有必要,我可以提供更多信息。

1 个答案:

答案 0 :(得分:2)

您需要执行以下步骤才能找到现有的IBOutlet / IBAction和object。是labelbutton等。以及如何删除它。

  1. 打开Main.storyboard。默认情况下,您应在Storyboard窗口的左侧显示Document outline window。如果没有,请单击故事板窗口左侧的图标,View As: iPhone 7旁边的图标。
  2. storyboard中选择对象,更容易找到,然后从document outline的{​​{1}}中选择它。
  3. 如果尚未在最右侧打开,请打开storyboard。使用快捷键Utility window(命令选项 - 零)来切换实用程序窗口的打开/关闭。
  4. 单击Cmd-Option-0图标(右上角的图标)打开连接检查器。通过单击连接旁边的right arrow图标,删除任何不需要的IBOutlet / IBAction或您要删除的任何其他连接。
  5. 重新创建连接。您也可以直接从xcircle旁边的element拖动特定connection window。否则,就像你现在一直在做的那样添加连接。
  6. 至于Class文件和其他编码文件。您可以只注释掉以前有objectIBAction的行。并手动重新键入相同的行(不要IBOutlet)。从cut and paste添加连接,您应该很好。不要忘记删除您已注释掉的不再需要的行。