Xcode 只能重构 C 和 Objective-C 代码。如何在 Xcode 6中重命名快速类名?

我已经在 Xcode 6 beta 版本中创建了一个新的单视图应用程序项目。我想把 Swift 类从 ViewController.swift改成别的名字。但是当我选择 Refactor-> Rename 时,它会显示错误 Xcode can only refactor C and Objective-C code

enter image description here

你知道怎么用 Xcode 6重命名 Swift 类吗?

更新:

最后,Xcode 9支持 Swift 的重构,苹果花了3年时间才添加了这个基本功能

23291 次浏览

From this tutorial.

Split up your iOS8 Swift Code

First things first, let’s rename our View Controller to be something more meaningful. Open up your ViewController.swift file and replace all references to ‘ViewController’ with our new name, ‘SearchResultsViewController’. Rename the file as well to SearchResultsViewController.swift.

If you try to run the app from here you’ll get a crash. This is because our storyboard file hasn’t been updated to know about the new class! So open up the Main.storyboard, select your ‘View Controller’ object in the scene (the left-hand side nav), and then select the Identity Inspector (right-hand side, third button.)

From here let’s change the class from ‘ViewController’ to ‘SearchResultsViewController’. Now we should be back on track. Check that the project still works, and let’s proceed.

You can change name of a class in File Inspector at the right side of Xcode6.

  • open your class
  • go to File Inspector > Identify and type section
  • rename existing class in "name" field.

That's all! Previously I manually rename the class name in the class file.

I've been using Find>Find & Replace in Project, it's not perfect but it works.

Unfortunately, Apple hasn't gotten around to implementing it yet.

See http://www.quora.com/Why-isnt-there-a-refactoring-feature-for-Swift-language-in-Xcode-6 for more information.

I use this way:

  • You can positioning the cursor on the variable that you want rename
  • Select Editor - Edit all in Scope (^⌘E)
  • Rename the variable and automatically all variable occurrences is edit

Xcode 9

Xcode 9 now supports renaming in Swift. This was announced in WWDC 2017.

enter image description here