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

问题描述 投票:22回答:5

我正在使用XCode9,我正在尝试在基于Swift的文件上进行重构,但每次我都得到以下错误:

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

enter image description here

我不知道为什么它不匹配初始范围。有没有人有这个问题的解决方案?

提前致谢!

xcode xcode9
5个回答
11
投票

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


7
投票

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

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

SOURCEKIT_SERVICE_LOG=3 /Applications/Xcode.app/Contents/MacOS/Xcode 2>&1 | tee /tmp/sk-log.txt

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

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


5
投票

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

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

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

enter image description here


1
投票

我更新到Xcode 10并最终重构现在它在一年之后再次运行而没有重构


0
投票

我遇到了完全相同的问题。原来,我的构建配置设置为Release模式。将其更改为Debug,清理构建文件夹并重新编译为我修复了问题。


0
投票

我在Xcode 10.3中遇到了同样的问题。当我右键单击→重构→重命名类定义中的类名时,重构不起作用。但是当我在使用该类的代码中执行相同操作时,它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.