在我的一些新项目中,我遇到了一个问题,即Xcode Beta5(我在早期的beta中也遇到了这个问题)确实经常挂起(“沙滩球”)。在事件监视器中,我可以看到SourceKitService需要100%的CPU。
Xcode至少会挂起10-15秒。

我不知道我的代码是否有问题。在控制台实用程序中,我可以看到很多此错误:
sourcekit-serv[63558]: [1:getBufferStamp:17199:1776.3650] failed to stat file: <imports> (No such file or directory)
更新:

我发现,使用以下内容是问题所在:[[String: AnyObject]],就像这样:

var myArray: [[String: AnyObject]]
myArray = [
    ["name": "item1", "children": [
        "name": "child1", "children": [],
        "name": "child2", "children": []]],
    ["name": "item2", "children": [
        "name": "child1", "children": [],
        "name": "child2", "children": []]]
]

但是请注意:几秒钟后,此代码将完全阻塞Xcode!

最佳答案

经过一段时间的努力并阅读了同样问题困扰的人们的许多文章后,我意识到元主题是:Swift与“复杂的”数组和字典作斗争。为了帮助Xcode,我为所有数组和字典明确定义了变量的类型,而不是让Xcode弄清楚了它。这使我的问题消失了。

而不是通过编写以下代码行让Swift弄清变量的类型:

var myDictionary1 = ["Item":[1,2,3],"Thing":[4,5,6],"Weight":[7,8,9]]

我重新编写了变量声明,如下所示:
var myDictionary2: [String:[Int]] = ["Item":[1,2,3],"Thing":[4,5,6],"Weight":[7,8,9]]

附带说明一下,Xcode的自动完成功能将myDictionary1显示为[String:ArrayInt],将myDictionary2显示为[String:[Int]]。

关于Xcode Beta经常挂起/SourceKitService高CPU,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25219304/

10-10 20:41
查看更多