为什么每次在IB中打开它都会修改我的XIB?

DBD*_*DBD 43 iphone interface-builder xib ios xcode4.2

我通过项目导航器点击XIB.它打开并立即将图标更改为灰色,显示我有未保存的更改.如果我保存更改,请单击其他文件,然后单击返回以重新打开它,进行更多更改.始终在打开时修改.

它发生在这个项目中的一个XIB文件和另一个项目中的一对.我很想知道它为什么会发生以及我现在可以做些什么来解决它并在将来阻止它.

注意:使用Xcode 3.2 Build 4C199和Snow Leopard

编辑:我添加了几个部分,这些部分在其中一个打开/修改中从XML中删除

        <key>outlets</key>
        <dict>
            <key>addEventTabBarController</key>
            <string>UITabBarController</string>
            <key>window</key>
            <string>UIWindow</string>
        </dict>
        <key>superclass</key>
        <string>NSObject</string>
Run Code Online (Sandbox Code Playgroud)

        <key>outlets</key>
        <dict>
            <key>courseTableCell</key>
            <string>UITableViewCell</string>
        </dict>
        <key>superclass</key>
        <string>UITableViewController</string>
Run Code Online (Sandbox Code Playgroud)

DBD*_*DBD 22

最后我向Apple提交了这个问题.他们的反应是没有启发性的,并谈论可能的优化,更新新版Xcode的元数据等.

我通过单击关闭和文件跟踪了100个版本.正如Apple所说,它每次都在"优化",但每次只是移动一些XML标签.从来没有对它自己的优化感到满意,它会在下次打开时将它们移动.我认为它是Xcode的一个错误,很烦人,但大多无害.

这只发生在旧的XIB上,并且将内容移动到新的XIB文件中或者(真正发生的事情)Storyboards摆脱了这个问题.


Die*_*ego 6

我不想像其他答案中的建议那样使用故事板.这是一个替代的简单/快速修复.

选择xib视图文件时,请转到检查器上的Interface Builder文档属性.然后你需要

  • 将"部署"更改为与Project SDK不同的内容,在我的情况下,我将其设置为最新的iOS版本(目前是iOS 6).
  • 将开发更改为与"以前的版本"不同的东西,在我的情况下,我将其设置为最新的Xcode版本4.5

我在Lion上运行Xcode 4.5.2.

希望这可以帮助.