在我的一些新项目中,我遇到了问题,Xcode Beta5(我早期的测试版也存在这个问题)真的经常挂起(‘beachball’).在活动监视器中我可以看到,SourceKitService需要100%的cpu.
Xcode比挂起至少10-15秒.
Xcode比挂起至少10-15秒.
我不知道,如果这是我的代码的问题.在Console Utility中我可以看到很多这样的错误:
sourcekit-serv [63558]:[1:getBufferStamp:17199:1776.3650]无法获取stat文件:< imports> (没有相应的文件和目录)
更新:
我发现,使用以下是问题:[[String:AnyObject]],就像:
var myArray: [[String: AnyObject]] myArray = [ ["name": "item1","children": [ "name": "child1","children": [],"name": "child2","children": []]],["name": "item2","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,9]]
作为旁注,Xcode的自动完成将myDictionary1显示为[String:ArrayInt],将myDictionary2显示为[String:[Int]].