我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?
下面是一个示例图像:
我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?
下面是一个示例图像:
当前回答
将扩展移动到主体类之前。
extension SomeType {
// new functionality to add
}
其他回答
我发现,通过显式地(静态地)键入变量类型,而不是推断它们,为我解决了这个问题。
我在嵌套的objective - c++项目中也犯了同样的错误,该项目现在包含了带有Swift代码的框架。为了解决这个问题,我必须明确地构建框架。一旦我做了,那期就没了,再也不会回来了;)
为了解决这个问题,你的Swift代码可能会有一些奇怪的问题。例如,因为您正在复制和粘贴,所以有多个iboutlet的定义。通常这只是一个无法处理的语法错误。
只要我输入,SourceKitService就会在我的系统上崩溃
extension foo {
我使用的是Xcode 6 beta 6,不管我是把它输入到一个空文件中,还是把它添加到一个现有的文件中。只要源代码包含一个扩展块,它就会崩溃。即使在新创建的项目中也会发生这种情况。
我的“解决方案”是避免在我目前正在开发的源代码中进行扩展。我注释掉了类块的结尾和扩展块的开头。我一完成这门课的工作,就会再次对它们进行评论:
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
我在苹果的开发者论坛上找到了一个解决方案(需要登录,所以我也会在这里解释)。
TLDR:不要在Objective-C中导入与@interface同名的@protocol到Swift桥接头。例如,Facebook SDK有一个名为“FBGraphObject”的协议和接口。
以下是论坛帖子:
Adding Facebook SDK causes SourceKitService to crash. If you want to use beta 3 and you need Facebook SDK, one work around that I found and is working for me is refactoring Facebook SDK's @protocol FBGraphObject and renaming it to something like @protocol FBGraphObjectProtocol as an @interface FBGraphObject also exists and apparently SourceKit doesn't like it. It sure is a temporary solution just to keep you functional and you'll have to use Cocoapods or otherwise build Facebook SDK yourself rather than using the framework library. For the time being, you'll need to make sure you don't have conflicting @protocol and @interface declarations and that includes 3rd party libraries you may be using. This cost me today, hope it helps! Posted by e.parto on July 10, 2014