为什么在Xcode中重构...是灰色的(禁用)?
我想要重命名一个类。
为什么在Xcode中重构...是灰色的(禁用)?
我想要重命名一个类。
在类的头文件中选择类的符号 - 即在 @interface
之后的位。然后重构工具将启用。
如果您正在使用Objective-C++(即将Objective-C与C++代码混合使用),则在Xcode中不支持重构C++代码,因此重构功能被禁用。
如果受影响的文件(最可能是包含您类的文件)未保存,重构也可能被禁用。
我已经使用Xcode 5年了,重构从来没有正常工作过(甚至xcode 4.6也有严重的错误,会破坏你的源代码!)。
解决方法一直是:(即使在苹果的代码失败的情况下仍然有效)
我用这种方法有了100%的成功率。我刚刚在最新的xcode中尝试使用苹果的“重构 -> 重命名”,但它又失败了!
(这次是错误的:“无法确定语言”,其中之一是Apple放错了文本的那些错误消息)
我发现Refactor功能被禁用了,因为我打开的Xcode项目引用了一个缺失的基础SDK。在编辑项目设置中,在Build标签页中将Base SDK设置为你拥有的版本(例如对我来说是iOS 4.2)。这样就可以启用Refactor功能。
相反,有效的方法是从编辑器中选择ViewController名称。所以如果你有:
class ViewController: UIViewController {
// Code here...
}
请高亮显示“ViewController”一词,然后从菜单中选择Refactor或右键单击并选择Refactor ->重命名。
希望这有所帮助...
打开你班级的头文件并找到类似于以下内容的行:
@interface YourClassName
右键点击类符号(例如:YourClassName),您应该能够选择重构 -> 重命名...
我刚刚尝试了这个,在Xcode 5中可以正常运行。
另外,还有可能发生这样的情况:您在Xcode之外更改了类的文件名,或者通过Ctrl单击文件名然后进行重命名操作。 如果文件名与类名不匹配,Xcode将拒绝进行重构。
我也遇到了这个问题。我试图找到缺失的SDK、保存文件以及寻找上面提到的Objective-C++代码,但是解决我的问题只需要重新启动XCode。
看起来还有点小问题。
顺便说一下,这是针对XCode 4.0.1的。