【问题标题】:Xcode can only refactor C and Objective-C code. How to rename swift class name in Xcode 6?Xcode 只能重构 C 和 Objective-C 代码。如何在 Xcode 6 中重命名 swift 类名?
【发布时间】:2014-07-30 18:48:14
【问题描述】:

我在 Xcode 6 beta 版本中创建了一个新的单视图应用程序项目。我想将 swift 类从 ViewController.swift 重命名为其他名称。但是当我选择 Refactor -> Rename 时,它​​会给出错误Xcode can only refactor C and Objective-C code

知道如何在 Xcode 6 中重命名 swift 类吗?

更新:

Xcode 9 终于支持 Refactoring for Swift。苹果花了 3 年时间才添加了这个基本功能。 Refactoring

【问题讨论】:

  • 目前没有。 File a bug.
  • 在被问到这个问题一年多之后,唯一的答案仍然是手动查找和替换!难以置信地落后于 Apple,这是 IDE 的基本且必不可少的功能
  • AppCode 可以完成这种重构。对于在.swift 文件中定义的类,这将是一个两步过程。 1. 选择类名并执行Refactor > Rename。 2. 选择.swift文件并执行Refactor > Rename
  • 即使过了两年!!!没有实现???
  • 在 C 中复制和粘贴 100 个项目时,在某种程度上可以唤起人们对旧时光的回忆

标签: ios swift xcode xcode6 xcode9


【解决方案1】:

您可以在 Xcode6 右侧的 File Inspector 中更改类的名称。

  • 开课
  • 转到文件检查器 > 识别和输入部分
  • 重命名“名称”字段中的现有类。

就是这样!以前我在类文件中手动重命名类名。

【讨论】:

  • 感谢您的回复,但它仅在文件结构中更改了类名。我仍然必须在代码中随处更改我的类名的所有实例。而使用 Refactor->Rename... 用于更改文件结构和代码中的名称。
  • 没问题!在 Apple 对这个问题采取措施之前,我只是认为这是一种解决方案。在那天之前,您也可以使用查找和替换功能。任何情况下,内置 Refactor->Rename 几乎都执行相同的操作。
  • @Newone 它不做同样的事情。例如,查找和替换将在字符串内部进行搜索,而 Refactor->Rename 不应该这样做。
【解决方案2】:

我一直在使用Find>Find & Replace in Project,它并不完美,但它确实有效。

【讨论】:

    【解决方案3】:

    我是这样用的:

    • 您可以将光标定位在要重命名的变量上
    • 选择编辑器 - 在范围内编辑所有内容 (^⌘E)
    • 重命名变量并自动编辑所有出现的变量

    【讨论】:

    • 这有帮助。我很惊讶我错过了这么久!! :]
    • 这只适用于范围内,即不能跨文件 IIRC。
    【解决方案4】:

    From this tutorial.

    拆分你的 iOS8 Swift 代码

    首先,让我们将 View Controller 重命名为更有意义的名称。打开您的 ViewController.swift 文件并将所有对“ViewController”的引用替换为我们的新名称“SearchResultsViewController”。将该文件也重命名为 SearchResultsViewController.swift。

    如果您尝试从此处运行应用程序,您会遇到崩溃。这是因为我们的故事板文件尚未更新以了解新课程!所以打开 Main.storyboard,选择场景中的“View Controller”对象(左侧导航),然后选择 Identity Inspector(右侧,第三个按钮。)

    从这里让我们将类从“ViewController”更改为“SearchResultsViewController”。现在我们应该回到正轨了。检查项目是否仍然有效,然后继续。

    【讨论】:

    • 感谢您的回复。我已经尝试过这种方法。但这似乎不是一个好方法。如果我在 10 个类中使用 ViewController.swift 对象,我必须在所有类中手动重命名它们。如此痛苦和浪费时间:(
    • @Khawar- 是的,你是对的,但现在可能没有其他选择,而且 swift 也处于测试阶段。不用担心..希望苹果会找到另一种更简单的方法(目标 c ???):)
    • 我在 7.2 (7C68) 版本,重命名重构仍然不可能
    • 在 7.3 中也是不可能的。
    【解决方案5】:

    Xcode 9

    Xcode 9 现在支持在 Swift 中重命名。这是在 WWDC 2017 中宣布的。

    【讨论】:

    • 谢谢,谢谢Apple,但重命名仍然不起作用。现在它正在使 Xcode 崩溃。
    • True... 从 9.0 beta 版开始,重命名会使 Xcode 崩溃。但这是应该在未来起作用的,无论何时:)
    【解决方案6】:

    不幸的是,Apple 还没有开始实施它。

    更多信息请参见http://www.quora.com/Why-isnt-there-a-refactoring-feature-for-Swift-language-in-Xcode-6

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多