ios - 重命名类导致 IBOutlet 连接失败

标签 ios swift storyboard uilabel iboutletcollection

我重命名了一个类,该类恰好有一个到 Storyboard文件中名为 mainLabel 的标签的 socket 连接。当我运行程序时,它崩溃并给出错误:“此类与键 mainLabel 的键值编码不兼容”。

其他答案表明这是由 socket 连接不良引起的,因此我删除了连接并删除了任何丢失的末端。当尝试将标签重新连接到代码中的 socket 时,我收到错误无法插入新的 socket 连接:找不到名为 CourseTableViewCell 的类的任何信息

其他SO答案提供了我已经尝试过但尚未工作的解决方案,包括:

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

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

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

最佳答案

以下步骤是您从对象中查找现有 IBOutlet/IBAction 所需执行的操作。无论是标签按钮等,以及如何删除它。

  1. 打开Main.storyboard。默认情况下,文档大纲窗口应该在 Storyboard窗口的左侧可见。如果没有,请单击 Storyboard窗口左侧“查看方式:iPhone 7”旁边的图标。
  2. 选择storyboard中的对象,更容易找到,然后从storyboard文档大纲中选择它。
  3. 打开实用程序窗口(如果尚未在最右侧打开)。使用快捷键Cmd-Option-0(命令选项零)来切换实用程序窗口的打开/关闭。
  4. 点击右箭头图标(最右上角的图标)打开连接检查器。单击连接旁边的 x 图标,删除任何不需要的 IBOutlet/IBAction 或任何其他要删除的连接。
  5. 重新创建连接。您还可以直接从特定对象连接窗口元素旁边的圆圈拖动。否则,按照您现在所做的方式添加连接。

至于Class文件和其他编码文件。您只需注释掉之前具有 IBActionIBOutlet 的行即可。并手动重新输入同一行(不要剪切和粘贴)。添加来自storyboard的连接,你应该就可以了。不要忘记删除注释掉不再需要的行。

关于ios - 重命名类导致 IBOutlet 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38256039/

相关文章:

iphone - 通过试飞了解 iOS 崩溃报告

ios - Firebase-iOS 存储错误代码 -13000 : Cannot finalise upload

ios - Designables : Failed to render and update auto layout status. 我正在使用 Xcode 9.3

ios 使用 Stroke 制作 Masked BlurView

ios - set-key-partition-list codesign 之后还是提示key access

ios - 当点击滚动到顶部时,tableView 中的导航栏会给 mi 后退空间

swift - 在 Swift 中捕获 NSFileHandleOperationException

ios - AlamoFire 无线程警告

ios - 在 Storyboard中设置导航栏项目图像不起作用

iOS 在 swift 主 StoryBoard 之前创建一个欢迎页面