Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 重命名Xcode中的类:重构。。。显示为灰色(已禁用)。为什么?_Iphone_Xcode_Refactoring - Fatal编程技术网

Iphone 重命名Xcode中的类:重构。。。显示为灰色(已禁用)。为什么?

Iphone 重命名Xcode中的类:重构。。。显示为灰色(已禁用)。为什么?,iphone,xcode,refactoring,Iphone,Xcode,Refactoring,为什么重构…在Xcode中变灰(禁用) 我想重命名一个类。在其头文件中选择该类的符号,即@interface后面的位。如果你使用Objto-C++(即混合ObjuleC和C++代码),那么Xcode中的重构就被禁用了,因为它不支持C++代码的重构。如果受影响的文件(很可能是你的类中的文件),也可能禁用“< /P> < P>重构”。未保存。对于我来说,我意识到重构已被禁用,因为我打开的Xcode项目引用了丢失的基本SDK。编辑项目设置,并在“构建”选项卡中将基本SDK设置为您拥有的SDK(就像我使

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


我想重命名一个类。

在其头文件中选择该类的符号,即
@interface
后面的位。如果你使用Objto-C++(即混合ObjuleC和C++代码),那么Xcode中的重构就被禁用了,因为它不支持C++代码的重构。如果受影响的文件(很可能是你的类中的文件),也可能禁用“< /P> < P>重构”。未保存。

对于我来说,我意识到重构已被禁用,因为我打开的Xcode项目引用了丢失的基本SDK。编辑项目设置,并在“构建”选项卡中将基本SDK设置为您拥有的SDK(就像我使用的是iOS 4.2)。这为我启用了重构。

此外,您可能会在xcode外部重命名该类的文件名,或者通过按住ctrl键单击该文件名然后重命名它。
如果文件名与类名不匹配,xcode拒绝重构。

也有此问题。我试着查找丢失的SDK,保存文件,并查找上面提到的Objective-C++代码,修复我的机器所需要的只是重新启动XCode

看起来还是有点像马车


顺便说一句,这是针对XCode 4.0.1的

我将在finder中打开我的项目,然后通过获取信息来更改文件名

之后,在xcode->projectnavigator我删除了这些文件

最后,我右键单击该类并将文件添加到…
,然后再次添加这些文件


这对我来说很有效。

我已经使用Xcode 5年了,而重构从来都没有正常工作过(即使是Xcode 4.6也存在严重的bug,它会损坏您的源代码!)

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

  • 使用shift-command-f查找文件的所有用途
  • 在搜索设置中选择“替换”
  • “全部替换”
  • 对.h文件执行以下操作,并对.m文件重复此操作(如果有):
  • 右键单击原始文件,然后选择“在finder中显示”
  • 从xcode中删除文件(当询问时选择“仅删除引用”)
  • 在Finder中重命名.h(和.m,如果有的话)
  • 在Xcode中,选择“产品->(按住Alt)->清理构建文件夹”
  • 退出xcode(不这样做通常可以侥幸逃脱——但请注意:xcode中还有其他一些主要错误,如果不这样做,它会崩溃)
  • 重新开放xcode
  • 将.h和.m拖放回Xcode
  • 等待几秒钟(Xcode的一些核心方法是异步的,这会使它损坏您的项目)
  • 最后,当它似乎什么也不做(并且你的硬盘不再发出任何噪音)时:cmd-b重新构建
  • 我用这种方法的成功率是100%。我刚刚在最新的xcode中尝试了用苹果的“重构->重命名”进行重构,但又失败了


    (这一次出现了错误错误:“无法确定的语言”,其中一条错误消息是Apple在其中放置了错误的文本)

    转到您的类的头文件,找到与此类似的行:

    @interface YourClassName
    
    右键单击类符号(例如,你的类名),你应该能够选择重构->重命名


    我刚刚尝试了这个,它在Xcode 5中工作。

    如果您首先在project navigator中更改文件名,重构就可以工作。

    这可能有点晚了,但我偶然发现了这篇文章,因为我无法将我的“ViewController.swift”文件重构为“WhateViewController.swift”。我尝试在项目导航器中选择文件,然后从顶部菜单中选择“编辑器->重构”,但是“重命名”总是灰显

    相反,有效的方法是从编辑器中选择ViewController名称。因此,如果你有:

    class ViewController: UIViewController {
     // Code here...
    }
    
    突出显示“ViewController”单词,然后从菜单中选择重构,或者右键单击并选择重构->重命名


    希望这有帮助…

    我的类的头文件只有@interface,没有@class。但是在@interface后面选择符号似乎很有效。@class if用于转发声明…这也困扰了我很长一段时间。谢谢即使这样,也不能在xcode 4中启用重构。我越来越绝望了,为什么苹果不改进他们的重构技术呢。有月食要跟随,怎么做事@karim-它从来没有在Xcode中工作过,请参阅下面我的答案,以了解每次都有效的解决方法在Interface Builder中为我节省一个xib文件重新启用重构,即使重新启动Xcode也无济于事,谢谢+这是我的荣幸。XCode的某些角落仍然有粗糙区域,这就是其中之一。有时,如果保存不能启用重构,则重建会。非常遗憾,差不多2年后,它仍然无法重构Objective-C对象。@christophercotton尝试了将近8年后,它仍然没有实现。是的,我最近(2014年5月)尝试过这个,Xcode官方的“重构”菜单选项仍然被破坏,它仍然会破坏您的源代码。我感到惊讶的是,苹果公司的员工并没有为此烦恼。