2012-04-01 31 views
0

我已经使用xcode重构来更改ViewController的名称。我在.h文件中突出显示控制器名称,然后使用编辑>重构>重命名。一切都正确更改,包括.xib文件的名称。但是,当我用initWithNibName加载nib时:无法识别新名称。我仍然必须提供控制器旧名称的字符串值。NIB名称不变使用xcode重构

我试图在.xib文件中使用XML编辑器搜索旧名称,希望在那里更改它。没有运气。

有谁知道我可以如何更改笔尖名称,以便它匹配.xib文件的新文件名?

[我使用的Xcode 4.2]

+0

你有没有尝试清理你的项目? – Sven 2012-04-01 15:36:05

回答

1

的XCode不会改变使用文字字符串(例如initWithNibName:@"FooViewController withBundle:nil])到initWithNibName电话。这是我倾向于这样编码的原因之一:initWithNibName:NSStringFromClass([FooViewController class]) withBundle:nil因此,请在您的代码中查看任何使用文字字符串的调用。

QUICK EDIT:但是,我发现你可能已经手动更改了它。在这种情况下,请快速卸载并清理项目。

+0

不需要手动调用'NSStringFromClass'。如果你想加载与你的班级同名的笔尖,你可以使用'nil'作为笔尖名字。 – Sven 2012-04-01 15:49:14

+0

是的,你也可以做到这一点,但偶尔它不适合我......我不知道为什么>< – borrrden 2012-04-01 15:50:28

+0

你的快速编辑得到了我的问题的根源。如果我将字符串文字更改为新的笔尖名称,我会在initWithName中出现故障。我已重新安装并清理无效。表明某个地方旧名称仍然用于笔尖。那个旧名字被存储在哪里是一个谜。然而,我已经采取了Sven的建议,并在initWithNibName中使用nil作为nib名称:并且它工作正常。我不知道你可以这样做!所以旧名仍然被埋在某处,但我不会担心它,因为它不会显示在我的代码中。 – lp1756 2012-04-01 17:30:58