我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?

下面是一个示例图像:


当前回答

将部署目标更改为iOS 8.0对我来说很有效。我知道有人说将它移动到<=7.1可以工作,但这个问题似乎来自多个来源,所以这个替代方案可能可以工作。

其他回答

当此错误开始弹出时,只需注释掉您编写的最后/最近的一段代码并等待一段时间。语法高亮显示应该会重新出现。这就是我解决这个问题的方法。

    func someFunc() -> (Int?, Int?, Int?) {
     var retVal1:Int? = nil
     var retVal2:Int? = nil
     var retVal3:Int? = nil

     //some other code

     //commenting out the line below helped me
     //(retVal1, retVal2, retVal3)
     return (retVal1, retVal2, retVal3)
    }

如果Xcode打开,退出Xcode。然后从终端运行:

defaults delete com.apple.dt.Xcode

这将把Xcode恢复到默认设置。打开Xcode,一切都可以正常工作了。

在我的spritekit项目中插入touchesMoved-function后,这种情况开始发生。这个函数使用强制展开,这似乎导致了问题:

override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)

在删除感叹号并停止强制打开后,SourceKitService停止了崩溃。

希望这能有所帮助!

只是在这里添加一个潜在的解决方案,我不小心命名了一个类var与它的类型相同的名称:

class var Settings:Settings {
        get { return classVarWorkAround.settings }
    }

这肯定会使SourceKit崩溃。愚蠢的语法错误,但以防其他人犯同样的错误。

编辑:根据@Portland Runner:

类似地,如果将返回类型设置为func名称,则会得到错误。

func foo() ->foo{}

报告给苹果公司(#17266321):

细节:

简介: 如果我们试图将值作为数组打印一个字典,则弹出窗口会不断弹出-“SourceKit terminated.”编辑器功能暂时受限”。Xcode冻结并失去上下文识别,导致文本变黑。

复制步骤: 1. 创建一个数组为- "var iOSHistoryArray = ["iOS6","iOS7","iOS8",]"

创建一个字典as -"var MacOSYosemiteFeatures: dictionary = ["Device":iOSHistoryArray]"。 将字典打印为- "println("包含数组值的字典:%@ \n",MacOSYosemiteFeatures)"(< < -罪魁祸首——> >) 第3步导致了注释问题,这使得Xcode再次起作用。

预期结果: Xcode应该能正常工作。

实际结果: Xcode变得无功能,失去上下文识别(所有字体丢失,所有文本变成纯黑色),整个Xcode变成非活动。

版本: 版本6.0 (6A215l)