【问题标题】:Unknown class in Interface Builder file [duplicate]Interface Builder文件中的未知类[重复]
【发布时间】:2011-03-25 21:09:40
【问题描述】:

我创建了一个相当简单的 iPhone 应用程序。然后想我会创建应用程序的 iPad 版本(通用)。尝试使用“升级”选项,但没有成功。所以我创建了一个单独的通用应用程序并将 xib 文件复制到我的项目中。那也没有成功,所以我删除了 xib 文件(以及它们相关的 .m 和 .h 文件。

现在,当我运行 iPhone 版本时,它会在 Interface Builder 文件中为我提供 Unknown 类 iPadSample1AppDelegate。错误和 UISplitViewController 仅在 UIUserInterfaceIdiomPad 下运行时才支持,然后退出。所以,我恢复到开始 iPad 冒险之前拍摄的快照……我得到了同样的错误。我已经尝试过 XCode 搜索和 Spotlight 搜索。在我的项目中的任何地方都没有对该类或 UISplitViewController 的引用,但出于某种原因,XCode 认为存在。

有什么方法可以删除不存在的引用吗?哈哈

更新:

这可能与我的 XCode 环境被劫持有关。在这里找到其他一些帖子后,我尝试了 Clean All / Build / Touch,当我进行触摸时,我在 XCode 中收到以下错误:

未捕获的异常:

-[XCBuildLogWarningMessage setFileLocations:]:无法识别的选择器发送到实例 0x2014dd0a0

是否要重新安装 XCode 而不会弄乱其他所有内容?

【问题讨论】:

    标签: iphone xcode interface-builder class-reference


    【解决方案1】:

    如果您使用的是 Cocoa pod,请将 .framework/.a 文件拖到项目的“将二进制文件与库链接”部分。

    【讨论】:

      【解决方案2】:

      在我的例子中,这个错误是在重构类名之后出现的。不知何故,.xib 文件中的类名没有改变。我在 Textedit 中打开了这个 xib 文件并将所有 OldClassVC 替换为 NewClassVC。然后我在新构建之前保存了 xib 文件和清理项目。项目运行良好。

      【讨论】:

        【解决方案3】:

        为我解决的问题不是简单地“删除”模拟器中的 ap,然后重新构建。

        可能这个类仍然在 iphone 模拟器的本地设置中重新出现。

        【讨论】:

          【解决方案4】:

          右键故事板 --> 打开为 --> 源代码

          在故事板源文件中找到你未知的类名。这可能是因为您不小心为您的 UIView 子类之一分配了自定义类名。

          【讨论】:

          • 正是我的情况。很高兴知道打开 xib 文件的新方法
          • 这应该是正确的答案。谢谢
          【解决方案5】:

          我做了一些研究,发现

          for my case

          我只需要在项目导航器中右键点击投诉文件即可。

          选择View/Utilities/Show File Inspector. 并且由于某种原因没有选择Target Membership

          这就是为什么链接器说它不知道类的存在。

          我只是勾选了它,一切都像魅力一样。

          【讨论】:

          • tyvm - 你刚刚为我节省了 2 小时的调试时间 - 当你知道所有问题时,IDE 非常棒,但当你刚刚学习时,通常是 PITA...
          【解决方案6】:

          如果您转到目标中的构建阶段,您将看到编译源。确保列出了您需要的每个 m 个文件。如果没有,只需在此处添加它,警告就会消失。

          【讨论】:

          • 为我修复了它。 Xcode 在添加/移动文件时出现问题。
          • 谢谢,让我免于许多可能的头痛。
          • 将文件添加到编译源对我来说是诀窍,@Thromordyn 可能是正确的 Xcode 没有正确添加文件。
          • 这对我有用。我已经将源文件重新排列成一个真正的文件夹层次结构,所以我在一个文件夹中没有一长串文件(为什么这不是默认的 xcode 行为?)。之后我的大部分源文件都没有被编译,即使它们在 xcode 解决方案中!
          【解决方案7】:

          我遇到了同样的问题,但上面的解决方案没有解决。我最终通过从我的 info.plist 文件中删除“主故事板文件基本名称(iPad)”条目来使其正常工作。

          【讨论】:

            【解决方案8】:

            事实证明,iPhone 模拟器上的位与 XCode 不同步。我做了一个“重置内容和设置”,一切正常 :) 谁知道?

            【讨论】:

            • 谢谢!您刚刚节省了我尝试进一步调试的时间。现在我们看到的调试信息是从 iOS 模拟器宣布的,这很有意义。但不明显的是,该应用程序并非每次都全新部署。在 XCode 4 的 Organizer 视图中清除 Derived Data 非常好,但是如果 iOS Simulator 上的 IB 文件仍然很旧,那么它会抛出奇怪的错误也就不足为奇了。感谢您的发现
            • 我也遇到了这个问题,但是这个解决方案对我不起作用。我的问题与 Copy Bundle Resources 中未包含的类有关。干杯,
            • 我的症状:重构->重命名,启动时崩溃,出现“未知类:TheOneYouDeletedDerp”。听起来其他有效的解决方案也有类似的问题,但如果有人做过同样的事情,我的这个重置解决方案已经解决了。
            • 我刚刚从模拟器中删除了该应用程序,并且成功了。
            • 调试2小时后救了我!用了ipod,卸载了app就解决了,谢谢!
            猜你喜欢
            • 2016-09-06
            • 1970-01-01
            • 2014-09-18
            • 2013-05-26
            • 2012-11-23
            • 2018-03-06
            • 2016-02-15
            • 1970-01-01
            相关资源
            最近更新 更多