19

保存故事板并将更改提交到 git 时,很有可能整个<classes>部分将从源代码控制 (git) 中删除或添加到源代码控制 (git) 中。我在命令行上使用 git,而不是 XCode 集成 UI。

首先它看起来像这样:

+    <classes>
+        <class className="CPTGraphHostingView" superclassName="UIView">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/>
+        </class>
...
+    </classes>

在下一次提交中,它看起来像这样:

-    <classes>
-        <class className="CPTGraphHostingView" superclassName="UIView">
-            <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/>
-        </class>
...
-    </classes>

为什么会这样,更重要的是:我怎样才能阻止它?

4

2 回答 2

10

(这个回答是个人经验,不是正式回答)

xml 文件中的classes部分.storyboard列出了您在项目中拥有的所有视图控制器,以便

  1. 当您在 Interface Builder 中选择 UI 元素时,允许 Assistant Editor 显示正确的源文件,并且
  2. 允许 Identity Inspector(右面板)显示自定义类的选项。

我猜这部分是一个缓存,当上面列出的两种用途都有一段时间没有使用时,它就会被淘汰。

这部分首先出现的事实意味着可以安全地忽略它,因为它是根据需要自动生成的。如果您已经提交了它,并且随后在 diff 上显示为已删除,请打开 Identity Inspector,下拉自定义类下可用的类列表,然后再次查看整个部分是如何存在的。

于 2012-11-07T14:48:42.313 回答
1

以我的经验,只有当您打开情节提要并出现与类存在相关的错误时,才会发生删除。这方面的一个例子是在合并冲突尚未解决时打开故事板。一个或多个类可能无法解析。在这种情况下,界面生成器似乎正在删除整个部分,而不仅仅是有问题的类。

对我来说,在补丁准备好后再次打开情节提要很容易修复,以防我看到删除。如果所有问题都已解决,则重新生成该部分。如果不是,则意味着我的项目设置有问题,无论如何我都不应该提交。

于 2013-07-25T17:30:09.313 回答