【发布时间】:2011-05-07 03:52:04
【问题描述】:
帮助我在 XCode4 中取消 fubar 界面生成器。
我在 interface-builder 中创建了一个按钮,并在视图代码中为它定义了一个 IBAction 方法。它运行良好。然后我使用 XCode 的重构/重命名工具重命名了按钮的操作方法。它运行良好。
然后我通过选择按钮并按删除键删除了界面生成器中的按钮。当我重建项目时,按钮仍然存在于模拟器中。回到界面生成器,按钮消失了。代码中没有对按钮的引用,但是按钮的IBAction方法还是有的。
更糟糕的是,按钮的原始操作方法被调用,这当然会引发选择器未找到的运行时异常。当我对原始操作方法的名称进行项目搜索时,没有找到任何东西,但运行时仍在尝试调用它。我做了一个“清理”并重建,但没有快乐。
如果我尝试将 .xib 文件作为 ASCII 属性列表打开,它会告诉我数据已损坏。 (我想通了。)
除了删除 .xib 文件并创建一个新视图之外,还有什么方法可以解决这个问题吗?
如果不删除二进制文件,“clean”会做什么?
感谢您的帮助!
【问题讨论】:
-
如果您在文本编辑器中打开 .xib,您会发现什么奇怪的地方吗?
-
@Jon Reid - 文本编辑器中的 .xib 看起来不错。看起来 xib 的 xml 表示中的对象与 Interface Builder 中的图形表示中的对象相同。不知何故,XCode 挂在某处的陈旧引用上。
-
在尝试重现此内容后,我相信这是由于我重命名了 .xib 文件造成的(我在发布原始问题时忽略了提及,抱歉。)我使用了 XCode“重构”工具重命名我的一些对象,但我看不到如何使用 Refactor 重命名 xib 文件,所以我只是在 Project Navigator 中重命名它。可能不是一个好主意。
-
啊,好的。重命名 xib 没有任何问题 - 您只需复制指定名称的更改(在代码中或在其他 xib 中)。