【问题标题】:Xcode shows old, deleted xib filesXcode 显示旧的、已删除的 xib 文件
【发布时间】:2011-04-15 12:35:52
【问题描述】:

我找遍了,没有找到任何帮助......

我用两个UIViewControllers 和它们对应的xibs. 构建了一个小型测试应用程序,一切都很好,然后我对xibs 进行了一些更改,但是当我构建和运行时,我得到了旧视图。我已经尝试删除构建文件夹,在模拟器和设备中运行,清理所有目标,但我完全改变的旧的、损坏的 xibs 仍然出现。我已经重启了所有的 Xcode 应用,甚至我的电脑。

变得很烦躁!

编辑:我从来没有弄清楚问题是什么。基本上,一旦我建立了一个项目,它就会记住我所做的第一个 xib,并且不会识别对它们的更改。如果我告诉视图控制器从不同的有效 nib 名称加载,它会抱怨旧的 nib 不存在。

我重新安装了 Xcode,现在一切正常。嘘。

【问题讨论】:

  • 嗨,史蒂夫,我有完全一样的。发生这种情况时,我运行 xCode 3.2 并在 iOS4.2 应用程序上工作。
  • 如果您再次遇到这种情况:stackoverflow.com/questions/5714372/…

标签: xcode ios xib


【解决方案1】:

尝试从模拟器(按住应用图标进入抖动模式,然后单击应用旁边的 X)和您的设备中删除应用。然后让 Xcode 重新安装它。

【讨论】:

  • 我试过几次。实际上,我只是修改了我的 xib,并没有真正删除它们。我只是这样做并清空了垃圾。现在我崩溃了,因为 Xcode 找不到 xibs!即使有具有相同名称和相同对象类型的新对象。 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/gazelips/Library/Application Support/iPhone Simulator/4.1/Applications/EF5C7A31-2713-4F32-9B23-FD2A24B0EEAA/Flash.app> (loaded)' with name 'FlashViewController''
  • 谢谢,这解决了我的问题,即即使在我通过 Xcode 删除旧的 XIB 后,它仍然显示。
  • 谢谢,成功了。转了一圈,非常有信心删除 FlipSideViewController.xib 文件后我的 FlipsideViewController 导航栏不会仍然出现,但它一直显示。
  • 我什么都试过了,然后就像我上面的人说的那样,我移动了一些物体,它起作用了。
【解决方案2】:

只需清理构建使用

产品 -> 清洁

菜单。

【讨论】:

    【解决方案3】:

    只需稍微修改一下您的 XIB 文件,然后保存它们,xCode 将检测到修改(文件系统中的最后修改日期)然后从其实际路径加载 xib,而不是从缓存路径:P

    【讨论】:

      【解决方案4】:

      我刚刚发现(并修复)了一个相关问题——一个表现出相似症状但其根本原因略有不同的问题。

      特别是,我观察到的症状是,我的 iPad 应用程序最初会在第一页显示旧的故事板图像,然后在短暂延迟后,会调出最近编辑的故事板内容。我经历了上述大部分阴谋无济于事。

      问题在于 iPad 加载程序首先只是将应用程序的启动图像无声地加载到屏幕中。您通常将此图像设置为 XCode 中应用程序的早期管理设置的一部分。在启动时,当最终用户正在考虑内容并思考触摸屏幕的位置时,应用程序同时疯狂地准备好自己,取消归档 xib/nib/storyboard,并做真正的 准备工作。

      在理想情况下,提供的启动图像是逐像素的,与 nib-unarchiving-process 生成的图像相同。但是,如果您在更新故事板后忘记更新您的启动图像,您会在完成取消存档时看到图像移动。

      我不会怀疑这是问题所在,除非我阅读了 Jef Raskin 关于他如何在 Canon Cat 文字处理器上做到这一点的描述,以提供立即准备好的应用程序的错觉:它利用了以下事实:对应用程序启动的典型人类响应时间约为 7 秒——即使是基于软盘的系统也有足够的时间来加载和覆盖加载程序设置的位图外观。有时,阅读一些神秘的历史是件好事。 Jef 后来当然会继续创建一个名为 Macintosh 的项目,剩下的就是历史了——还有这个 bug。

      【讨论】:

      • 你是我的英雄!搜索并尝试了两天的所有内容,以摆脱在应用启动时出现的旧屏幕的鬼影。检查了我的启动图像,它们就在那里。难以置信。
      【解决方案5】:

      不确定这是否有帮助,但我只是有这个。

      我花了好几天才解决这个问题。就我而言,我增强了现有的 Xib 文件。我在界面生成器中应用的更改从未出现在应用中。

      最终我找到了原因。我将我的 FilesOwner 视图插座设置为顶视图下方的子视图。当我增强视图时,我将其作为顶视图的扩展。因此,运行应用程序时从未出现更改。

      将视图出口更改为正确的视图(在我的例子中是顶视图)起到了作用,一切正常......

      【讨论】:

        【解决方案6】:

        我知道 steve 找到了解决方法,但问题根本不在 XIB 文件中。 Xcode 不会将 YouApplication-info.plist 文件更新为

        如果你打开它,你会看到一行:Main nib file base name。您必须更改该值以反映您所需的 NIB 文件名

        【讨论】:

          【解决方案7】:

          我遇到了这个问题,这是 xcode 继续复制以前编译的 xib 的结果——即使源文件被删除,构建缓存也没有。 Product > Clean 然后重新编译解决了它。

          【讨论】:

          • 我还必须为我的项目清除派生数据目录。
          【解决方案8】:

          我刚遇到这个问题,只需从模拟器中删除该应用即可。
          然后对您的项目进行清理。
          在 xCode 中, 进入产品菜单, 选择清洁。

          或者直接按 Shift+Command+K!

          【讨论】:

            【解决方案9】:

            我最终从头开始重新创建 xib,并且效果很好。非常沮丧。

            【讨论】:

            • 你遇到了一个令人沮丧的问题,一直坚持到你解决为止。干得好。
            • 我想这在学习编程或使用像这样的非常复杂的工具时并不新鲜!谢谢鼓励!
            【解决方案10】:

            您可以尝试稍微修改一下您的 XIB,因此 xCode 将通过文件系统中的最后修改日期检测到修改。然后它将从其实际路径加载 xib,而不是从 xCode 缓存加载。

            【讨论】:

              【解决方案11】:

              我遇到了同样的问题,但我通过将系统的日期时间更改为今天来解决它。并重新保存了xib。我正在测试本地通知。

              【讨论】:

                【解决方案12】:

                只是一个假设,不确定这是否真的导致它:我完成了一个在模拟器和实际设备上运行良好的 XIB。然后我将其更改为在 Xcode 4.5.1 中本地化。在我手动从设备中删除应用程序并通过 Xcode 重新安装之前,我之后所做的更改不会同步到设备。

                【讨论】:

                  【解决方案13】:

                  删除派生数据,清理项目并构建。旧的 xib 被神奇地删除了。 :D

                  【讨论】:

                    猜你喜欢
                    • 2011-06-26
                    • 2014-10-10
                    • 2011-11-30
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-02-11
                    • 2012-12-28
                    • 2016-02-27
                    • 2013-11-01
                    相关资源
                    最近更新 更多