How do I refactor swift in Xcode?

2020-05-19 06:14发布

Is there a way to refactor swift in Xcode 7.1? When I try to rename a variable (e.g. highlight, right-click, refactor -> rename), Xcode pops up an error dialog saying "Can't refactor Swift code. Xcode can only refactor C and Objective-C code." Is there a workaround for this?

4条回答
来,给爷笑一个
2楼-- · 2020-05-19 06:44

Xcode 9 - 10

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

enter image description here

查看更多
再贱就再见
3楼-- · 2020-05-19 06:47

The lack of refactoring is astounding (especially as I am coming off of a major stint using VS) However I have just noticed that someone has done something about it. On GitHub there is Refactorator Xcode Plugin (MIT license) which claims:

Refactorator is an Xcode plugin for refactoring Swift & now Objective-C code. It will rename public or internal vars, functions, enums etc. For private and local entities use Xcode's existing "Edit All in Scope" functionality.

Full disclosure is that I have nothing to do with them and am just about to install the product myself.

查看更多
欢心
4楼-- · 2020-05-19 07:05

AFAIK the refactoring is not working with Swift right now, however, at least in the same file(scope), you can do the following: enter image description here

查看更多
戒情不戒烟
5楼-- · 2020-05-19 07:10

As of Xcode 7.2 beta the refactoring tools do not support Swift.

What I do is use the type checker. Change the name/type of something and then fix all the compile breakages. Because of the strong typing you can have more confidence that this approach will catch everything. I have at times deliberately changed things and broken them temporarily to check where objects or types are used or accessed from.

Or use AppCode for the refactoring, I hear it is good but haven't tried much myself.

查看更多
登录 后发表回答