在Xcode中重命名一个类:Refactor …是灰色的(禁用)。 为什么?
为什么重构…在Xcode中灰显(禁用)?
我想重新命名一个类。
在头文件中select类的符号 – 即@interface
之后的位。 然后重构的东西应该被启用。
如果您使用的是Objective-C ++(即将Objective-C与C ++代码混合),那么在xcode中禁用重构,因为它不支持重构C ++代码。
如果受影响的文件(很可能是您的类中的文件)没有保存,重构也可能被禁用。
我已经使用Xcode 5年了,重构从来没有正常工作(即使xcode 4.6有重大错误,它会损坏你的源代码!)。
解决方法一直是(仍然100%,即使在苹果的代码失败的情况下)
- 使用shift-command-f查找文件的所有用途
- 在search设置中select“replace”
- “全部replace”
- 对.h文件执行以下操作,并为.m文件重复此操作(如果有的话):
- 右键单击原始文件,然后select“show in finder”
- 从xcode中删除文件(当被问到时select“仅删除引用”)
- 在Finder中重命名.h(和.m,如果有的话)
- 在Xcode中,select“Product – >(按住Alt) – > Clean Build Folder”
- 退出xcode(你通常可以逃避不这样做 – 但注意:还有一些其他主要的错误,如果你不这样做,崩溃自己的Xcode)
- 重新打开xcode
- 将.h和.m拖放到Xcode中
- 等待几秒钟(Xcode的一些核心方法是asynchronous的 – 允许它破坏你的项目)
- 最后,当它看起来什么都不做(而且你的硬盘不会再有任何噪音了):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
重构工程如果您首先更改项目导航器中的文件名称。