我重命名了一个类,该类恰好有一个到 Storyboard文件中名为 mainLabel 的标签的 socket 连接。当我运行程序时,它崩溃并给出错误:“此类与键 mainLabel 的键值编码不兼容”。
其他答案表明这是由 socket 连接不良引起的,因此我删除了连接并删除了任何丢失的末端。当尝试将标签重新连接到代码中的 socket 时,我收到错误无法插入新的 socket 连接:找不到名为 CourseTableViewCell 的类的任何信息
其他SO答案提供了我已经尝试过但尚未工作的解决方案,包括:
- 删除对文件的引用并重新添加
- 清理项目
- 删除派生数据文件夹
- 删除标签并重新添加
- 从代码拖动到 Storyboard,而不是反之亦然
我确保身份检查器中的“自定义类”下列出了正确的文件名。如果有人有任何其他想法,请告诉我!
如有需要,我可以提供更多信息。
最佳答案
以下步骤是您从对象中查找现有 IBOutlet/IBAction 所需执行的操作。无论是标签
、按钮
等,以及如何删除它。
- 打开
Main.storyboard
。默认情况下,文档大纲窗口
应该在 Storyboard窗口的左侧可见。如果没有,请单击 Storyboard窗口左侧“查看方式:iPhone 7”旁边的图标。 - 选择
storyboard
中的对象,更容易找到,然后从storyboard
的文档大纲
中选择它。 - 打开
实用程序窗口
(如果尚未在最右侧打开)。使用快捷键Cmd-Option-0
(命令选项零)来切换实用程序窗口的打开/关闭。 - 点击
右箭头
图标(最右上角的图标)打开连接检查器。单击连接旁边的x
图标,删除任何不需要的 IBOutlet/IBAction 或任何其他要删除的连接。 - 重新创建连接。您还可以直接从特定
对象
的连接窗口
中元素
旁边的圆圈
拖动。否则,按照您现在所做的方式添加连接。
至于Class文件和其他编码文件。您只需注释掉之前具有 IBAction
或 IBOutlet
的行即可。并手动重新输入同一行(不要剪切和粘贴
)。添加来自storyboard
的连接,你应该就可以了。不要忘记删除注释掉不再需要的行。
关于ios - 重命名类导致 IBOutlet 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38256039/