Xcode 4.5自动更改.xib文件

10

自从我升级到Xcode 4.5以来,发现它自动移除了我访问的每个xib文件中的一部分内容。这是被移除的部分:

<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
        <real value="1536" key="NS.object.0"/>
</object>

我几乎可以忍受这种情况,但当我再次访问文件时,发现有更多的“auto”更改。它们更加多样化和难以描述,所以我不会提供示例,除非我真的需要。

我不明白这是怎么回事。我在寻找以下两个答案之一:

  1. 有没有办法禁用这个功能?
  2. 为什么会出现这种情况,是否有办法强制 Xcode 将这些更改应用于所有 xib 文件,这样我就可以完成了?

如果我能够理解到底发生了什么以及为什么会发生这种情况,我会感觉好很多。


我发现类似的行为,即在提交 CVS 后,xib 文件变为已编辑状态,导致该文件因某种原因尝试解锁。我有兴趣找到一种禁用此功能的方法。 - damien murphy.
1
嗯,我不认为这个问题存在很长时间了。我经常保持Xcode更新。这是一个相当近期的发展。然而,持续时间并不重要。无论它存在多长时间,都很烦人。 - Rob Jones
是的,这让我疯了... XIB格式跟踪了太多关于类属性的信息 - 因此当您添加/删除不相关的代码时,XIB会被更新。 - antsyawn
2个回答

0

有一种方法可以禁用它,但是它也有自己的问题(如下所列)。您可以在Finder中显示xib文件,获取文件信息,然后在“常规”下选择“锁定”。

问题1:如果您使用源代码控制(像大多数人一样),在解锁将更改的所有文件之前,您将无法检出早期提交或将分支重置为早期提交。

问题2:现在,每次您在IB中查看文件时,一个弹出窗口从xCode窗口顶部滑下,标题为
“MBPreDeliveryComplete.xib”已被锁定以进行编辑,您可能无法保存更改。您要解锁吗?

并且这个消息:
“MBPreDeliveryComplete.xib”当前被锁定,因为在Finder中标记为“已锁定”。

按钮提供了解锁或不解锁文件的选项。当然,除非您确实打算进行更改,否则可以选择不解锁文件。


0

根据我所见,Xcode会自动重新格式化nibs,根据需要添加/删除.xib文件。当我遇到这种情况时,对于我的目的来说似乎没有任何功能上的不同。

仅为了SEO,我会提出这个问题,因为在跟踪版本控制(如Git)中的更改时,这非常相关。每次我在Xcode中打开旧的.xib文件(我使用的是5.0版本),它们都会自动更改,并显示在我的Git客户端的差异工具中。

试试这个:

*(如果您没有使用Git或某些版本控制,请设置一个项目存储库以测试此操作。)

  1. 查看是否有任何剩余未修改的.xib文件可以打开而不进行修改。

  2. 选择/查看它,但不要更改任何内容。

  3. 现在选择/查看项目导航器中的其他文件。如果.xib旁边出现“M”,请重建您的项目并验证其行为是否相同。

如果您想忽略这些文件,出于版本控制的原因,请确保在没有有意进行任何更改的情况下不要将它们提交到暂存区/提交区。

如果您想“撤消”自动更改的文件:

  1. 在项目导航器中右键单击该文件。
  2. 转到“源代码控制”>>>“放弃更改…”

或者,通过Git或您选择的版本控制工具放弃更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接