重命名 class 导致 IBOutlet 连接失败

Renaming class causes IBOutlet connection to fail

我重命名了一个 class,它恰好有一个出口连接到故事板文件中名为 mainLabel 的标签。当我 运行 我的程序时,它崩溃并给我错误:"this class is not key value coding-compliant for the key mainLabel".

其他 SO 答案表明这是由插座连接不良引起的,因此我移除了连接并移除了所有未解决的问题。在我的代码中尝试将标签重新连接到插座时,出现错误 Could not insert new outlet connection: Could not find any information for the class 名为 CourseTableViewCell

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

我确保身份检查器中 "Custom Class" 下列出了正确的文件名。如果大家有其他想法,请告诉我!

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

以下步骤是您从对象中查找现有 IBOutlet / IBAction 所需执行的操作。可以是 labelbutton 等。以及如何删除它。

  1. 打开Main.storyboardDocument outline window 应该默认显示在故事板 window 的左侧。如果没有,请单击故事板 window 左侧 View As: iPhone 7 旁边的图标。
  2. Select storyboard 中的对象,从 storyboarddocument outline 中找到然后 select 更容易。
  3. 打开最右边的Utility window如果还没有打开。使用快捷键 Cmd-Option-0(command-option-zero),切换实用程序 window 的 open/close。
  4. 通过单击 right arrow 图标(最右上角的图标)打开连接检查器。通过单击连接旁边的 x 图标,删除任何不需要的 IBOutlet / IBAction 或任何其他要删除的连接。
  5. 重新建立连接。对于特定的 object,您也可以直接从 connection windowelement 旁边的 circle 拖动。否则按照您现在所做的方式添加连接。

至于Class文件等编码文件。您可以只注释掉之前具有 IBActionIBOutlet 的行。并手动重新键入同一行(不要 cut and paste)。加回 storyboard 的连接,你应该没问题。不要忘记删除您注释掉的不再需要的行。