重命名类会导致IBOutlet连接失败
我重命名了一个类,它碰巧在故事板文件中有一个名为mainLabel的标签的出口连接。 当我运行我的程序时,它崩溃,并给我的错误:“这个类是关键的代码不符合关键mainLabel”。
其他SO的答案已经表明这是由于一个不好的sockets连接,所以我删除了连接,并删除任何损失。 当试图将标签重新连接到我的代码中的sockets时,出现错误无法插入新的sockets连接: 无法find名为CourseTableViewCell的类的任何信息
其他的答案提供了我已经尝试过但没有工作的解决scheme,包括:
- 删除对文件的引用并重新添加它
- 清理项目
- 删除派生的数据文件夹
- 删除标签并重新添加
- 从代码拖到故事板而不是反之亦然
我确定在“自定义类”下的身份检查器中列出了正确的文件名。 如果有人有任何其他的想法,请让我知道!
如有需要,我可以提供更多信息。
以下步骤是您需要从现有对象中查找现有的IBOutlet / IBAction。 是label
, button
等,以及如何删除它。
- 打开
Main.storyboard
。Document outline window
应该在故事板窗口的左侧默认可见。 如果没有,请单击故事板窗口左侧的“View As: iPhone 7
旁边的图标。 - select
storyboard
的对象,可以更容易地find,然后从storyboard
的document outline
中select它。 - 如果尚未在最右侧打开,请打开“
Utility window
。 使用快捷键Cmd-Option-0
(command-option-zero)来切换实用程序窗口的打开/closures。 - 点击
right arrow
图标(右上图标)打开连接检查器。 点击连接旁边的x
图标,删除任何不需要的IBOutlet / IBAction或任何其他想要删除的连接。 - 重新创build连接。 您也可以直接从
connection window
element
旁边的circle
拖动特定object
。 否则,按照您现在所做的方式添加连接。
至于Class文件和其他编码文件。 你可以注释掉以前有IBAction
或IBOutlet
。 并手动重新input相同的行(不要cut and paste
)。 添加storyboard
的连接,你应该是好的。 不要忘记删除你不再需要的注释。