无法在Xcode 9中对我的Swift文件进行重构

Cod*_*ger 25 xcode xcode9

我正在使用XCode9,我正在尝试重构我的Swift文件,但每次我收到以下错误:

重构引擎范围与初始范围不匹配

在此输入图像描述

我不知道这是什么.任何人都有这个问题的解决方案?

提前致谢!

小智 32

构建您的项目 ( Command \xe2\x8c\x98+ B),它将修复错误。完成后,我可以成功重命名我的文件。

\n

  • 重新启动 Xcode 对我来说不起作用,但这却起作用了。Xcode 13.3 (13E113) (2认同)

akr*_*roy 11

从XCode 9.2开始,这还没有得到解决.为我重新启动修复程序.

  • 为什么"重新启动IDE"不是有效的答案? (9认同)
  • @akroy对不起,但我对您的答案不满意,直到现在我才意识到我使用Xcode 9.3。除非您编辑答案,否则我无法恢复投票,但该答案已被StackOverflow阻止。如果您这样做,我们将很高兴将其还原,对不起! (2认同)

man*_*man 7

更新由于某种原因,它不再发生在我身上.我也注意到,在尝试开始重构或多次点击重构之前,我没有让索引完成,仍然看到错误,但不再是永久性的.

我向WWDC 2018的一位工程师询问了这个问题.我的工作区中只有一个项目中出现了这个问题.同一工作区中的其他项目工作正常.目前,这个问题没有解决方案.如果您想帮助Apple解决此问题,您可以关闭Xcode并在终端中运行以下命令:

SOURCEKIT_SERVICE_LOG=3 /Applications/Xcode.app/Contents/MacOS/Xcode 2>&1 | tee /tmp/sk-log.txt
Run Code Online (Sandbox Code Playgroud)

然后尝试重现问题并向他们发送日志文件(/tmp/sk-log.txt),以便他们可以缩小范围并希望在未来的Xcode版本中修复它.

注意这是与项目相关的问题,不会修复OS更新,Xcode更新或任何数量的重启应用程序,至少是我所拥有的应用程序.


mne*_*c23 5

我很久以前就使用Xcode8创建了Xcode的项目.出于某种原因,我必须升级到Xcode9(准确地说是9.4.1).然后我只在那个旧项目上遇到了这个错误,而不是使用Xcode9创建的新错误.

所以我认为这个错误与项目问题有关.所以我决定比较旧的和新的设置.有一些差异,经过多次尝试,通过改变Optimization Level for Debug解决的重构问题.

  1. 在项目编辑器中,选择您的Target,Build Settings
  2. Optimization Level (Debug) = No optimization [-Onone]
  3. 删除DerivedData与项目相关的文件夹/Users/YourMacUsername/Library/Developer/Xcode/DerivedData
  4. 清洁项目shiftcommandk.
  5. 建立项目commandb.

在此输入图像描述