2012-04-01 29 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