为什么Refactor ...在Xcode中变灰(禁用)?
我想重命名一堂课.
在其头文件中选择类的符号 - 即刚刚之后的位@interface
.然后应该启用重构的东西.
如果您正在使用Objective-C++(即将Objective-C与C++代码混合使用),则在xcode中禁用重构,因为它不支持重构C++代码.
如果未保存受影响的文件(很可能是包含其类的文件),也可能会禁用重构.
我已经使用Xcode 5年了,重构从来没有正常工作(即使xcode 4.6有重大错误,它会破坏你的源代码!).
解决方法一直是(仍然100%工作,即使在Apple的代码失败的情况下)
使用shift-command-f查找文件的所有用法
在搜索设置中选择"替换"
"全部替换"
对.h文件执行以下操作,并为.m文件重复它(如果有的话):
右键单击原始文件,然后选择"在finder中显示"
从xcode中删除文件(选择"仅在删除参考时")
在Finder中重命名.h(和.m,如果你有的话)
在Xcode中,选择"产品 - >(按住Alt键) - >清理构建文件夹"
退出xcode(你通常可以不做这个 - 但请注意:Xcode中还有一些其他的MAJOR错误,如果你不这样做,它会自动崩溃)
重新打开xcode
将.h和.m拖放回Xcode
等待几秒钟(Xcode的一些核心方法是异步的 - 允许它破坏你的项目)
最后,当它似乎无所事事(而你的硬盘不再发出任何噪音):cmd-b重新构建
这种方法我有100%的成功率.我刚尝试在最新的xcode中使用Apple的"Refactor - > Rename"进行重构,但它再次失败了!
(这次出现错误错误:"无法确定语言",Apple将错误文本放在适当位置的错误消息之一)