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

我重命名了一个类,它碰巧在故事板文件中有一个名为mainLabel的标签的出口连接。 当我运行我的程序时,它崩溃,并给我的错误:“这个类是关键的代码不符合关键mainLabel”。

其他SO的答案已经表明这是由于一个不好的sockets连接,所以我删除了连接,并删除任何损失。 当试图将标签重新连接到我的代码中的sockets时,出现错误无法插入新的sockets连接: 无法find名为CourseTableViewCell的类的任何信息

其他的答案提供了我已经尝试过但没有工作的解决scheme,包括:

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

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

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

以下步骤是您需要从现有对象中查找现有的IBOutlet / IBAction。 是labelbutton等,以及如何删除它。

  1. 打开Main.storyboardDocument outline window应该在故事板窗口的左侧默认可见。 如果没有,请单击故事板窗口左侧的“ View As: iPhone 7旁边的图标。
  2. selectstoryboard的对象,可以更容易地find,然后从storyboarddocument outline中select它。
  3. 如果尚未在最右侧打开,请打开“ Utility window 。 使用快捷键Cmd-Option-0 (command-option-zero)来切换实用程序窗口的打开/closures。
  4. 点击right arrow图标(右上图标)打开连接检查器。 点击连接旁边的x图标,删除任何不需要的IBOutlet / IBAction或任何其他想要删除的连接。
  5. 重新创build连接。 您也可以直接从connection window element旁边的circle拖动特定object 。 否则,按照您现在所做的方式添加连接。

至于Class文件和其他编码文件。 你可以注释掉以前有IBActionIBOutlet 。 并手动重新input相同的行(不要cut and paste )。 添加storyboard的连接,你应该是好的。 不要忘记删除你不再需要的注释。