我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?
下面是一个示例图像:
我在Xcode中遇到了一个问题,错误“源套件服务终止”正在弹出,所有语法高亮显示和代码完成都在Swift中消失了。我该如何解决这个问题?
下面是一个示例图像:
当前回答
在我的情况下,我已经导入桥接头丢失的文件。在我删除错误导入后,错误通知消失了。
其他回答
我在苹果的开发者论坛上找到了一个解决方案(需要登录,所以我也会在这里解释)。
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
我想我找到了一个(可能还有很多)这种情况发生的原因。
在我的例子中,我通过桥接头导入Objective-C文件,桥接头具有以下true之一:
用于Objective-C导入的实现文件(.m)没有 App目标设置正确。 Objective-C文件只有头文件(.h),而没有 实现(.m)文件。(再一次,我认为这是“不”的一部分 适当的应用目标”设置,因为你只能在。m文件中设置目标 而不是。h文件)
修复Objective-C文件上的应用目标或在桥接头中删除这些文件的导入似乎都可以解决这个问题。
仅供参考-如果你需要设置头(.h)文件的目标,而该文件没有实现(.m)文件,你可以遵循以下简单的步骤
我发现,通过显式地(静态地)键入变量类型,而不是推断它们,为我解决了这个问题。
在Xcode 6 Beta 3中,我每隔几秒钟就会遇到这个问题,甚至在全新的项目中,这个问题仍然存在。我将部署目标从8.0更改为7.1,它已经停止。
将扩展移动到主体类之前。
extension SomeType {
// new functionality to add
}