在Xcode中重命名一个类:Refactor …是灰色的(禁用)。 为什么?

为什么重构…在Xcode中灰显(禁用)?

我想重新命名一个类。

在头文件中select类的符号 – 即@interface之后的位。 然后重构的东西应该被启用。

如果您使用的是Objective-C ++(即将Objective-C与C ++代码混合),那么在xcode中禁用重构,因为它不支持重构C ++代码。

如果受影响的文件(很可能是您的类中的文件)没有保存,重构也可能被禁用。

我已经使用Xcode 5年了,重构从来没有正常工作(即使xcode 4.6有重大错误,它会损坏你的源代码!)。

解决方法一直是(仍然100%,即使在苹果的代码失败的情况下)

  1. 使用shift-command-f查找文件的所有用途
  2. 在search设置中select“replace”
  3. “全部replace”
  4. 对.h文件执行以下操作,并为.m文件重复此操作(如果有的话):
    1. 右键单击原始文件,然后select“show in finder”
    2. 从xcode中删除文件(当被问到时select“仅删除引用”)
  5. 在Finder中重命名.h(和.m,如果有的话)
  6. 在Xcode中,select“Product – >(按住Alt) – > Clean Build Folder”
  7. 退出xcode(你通常可以逃避不这样做 – 但注意:还有一些其他主要的错误,如果你不这样做,崩溃自己的Xcode)
  8. 重新打开xcode
  9. 将.h和.m拖放到Xcode中
  10. 等待几秒钟(Xcode的一些核心方法是asynchronous的 – 允许它破坏你的项目)
  11. 最后,当它看起来什么都不做(而且你的硬盘不会再有任何噪音了):cmd-b重新构build

这个方法我有100%的成功率。 我只是尝试在最新的xcode中重构苹果的“重构 – >重命名”,并且失败了 – 再次!

(这次是不正确的错误:“无法确定的语言”,苹果把错误的文本在那里的错误信息之一)

我要去找我的项目,然后通过获取信息更改文件名称。

之后,在xcode – > Project Navigator中删除这些文件。

最后,我在课程上点击右键并添加文件到… ,然后再次添加这些文件。

它为我工作。

对我来说,我意识到Refactor被禁用了,因为我打开的Xcode项目引用了一个缺失的Base SDK。 编辑项目设置,然后在“生成”选项卡中设置基本SDK为一个(对我来说这是iOS 4.2)。 这为我启用了Refactor。

去你的class级的头文件,find类似这样的行:

 @interface YourClassName 

右键单击类的符号(例如YourClassName),你应该能够select重构 – >重命名…

我只是试过这个,它在Xcode 5中工作。

此外,可能会发生这样的情况:您重命名该类的文件名,无论是在xcode之外还是通过ctrl单击文件名并重命名。 如果文件名与类名不匹配,xcode将拒绝重构。

有这个问题。 我跑过去试图find缺less的SDK,保存文件,并寻找上面提到的Objective-C ++代码,并且修复我的机器所花的一切都是重新启动XCode。

似乎仍然是一个小车。

顺便说一句,这是XCode 4.0.1

重构工程如果您首先更改项目导航器中的文件名称。