Xcode Beta 6.1和Xcode 6 GM由于奇怪的原因而无法建立索引
我正在开发一个swift应用程序,在某种程度上,我有一个类似以下代码:Xcode Beta 6.1和Xcode 6 GM由于奇怪的原因而无法建立索引,xcode,swift,xcode6,Xcode,Swift,Xcode6,我正在开发一个swift应用程序,在某种程度上,我有一个类似以下代码: import UIKit class ViewController: UIViewController { private var a: UIImageView! private var b: UIImageView! private var c: UILabel! private var d: UILabel! private var e: UILabel! privat
import UIKit
class ViewController: UIViewController {
private var a: UIImageView!
private var b: UIImageView!
private var c: UILabel!
private var d: UILabel!
private var e: UILabel!
private var f: UILabel!
private var g: UIView!
private var h: UIView!
private var i: UIView!
private var j: UIView!
private var k: UIImageView!
private var l: UIView!
private var m: UIView!
private var n: UIView!
private var o: UIView!
private var p: UIScrollView!
private var q: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let viewBindingsDict = ["a" : a,
"b" : b,
"c" : c,
"d" : d,
"e" : e,
"f" : f,
"g" : g,
"h" : h,
"i" : i,
"j" : j,
"k" : k,
"l" : l,
"m" : m,
"n" : n,
"o" : o,
"p" : p]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
由于某种原因,当我添加这段代码时,xcode被卡住了,我不能做任何其他事情
打开活动监视器,它会显示sourcekitservice和swift,使用超过100%的CPU
我用上面的代码创建了这个示例项目:
我已经尝试过清理派生数据、重新安装Xcode、重新启动、等待几分钟等等,但都不起作用。类似的事情也发生过几次,我通过将长语句拆分成多行来解决它 我在操场上测试了您的代码,我立即注意到SourceKitService进程占用了我100%的CPU 在您的代码中,我看到的最长语句是字典初始化,因此第一种方法是使其可变,并在每行中使用少量项进行初始化 Swift没有为字典提供一个
+=
操作符,所以我们首先需要一个(很荣幸):
每行最多选择5项
但在您的代码中,您将字典声明为不可变-swift在声明后不提供任何语句来初始化不可变-幸运的是,我们可以使用闭包来实现这一点:
let viewBindingsDict = { () -> [String:UIView] in
var bindings = ["a" : self.a, "b" : self.b, "c" : self.c, "d" : self.d, "e": self.e]
bindings += ["f": self.f, "g" : self.g, "h" : self.h, "i" : self.i, "j" : self.j]
bindings += ["k" : self.k, "l" : self.l, "m" : self.m, "n" : self.n, "o" : self.o]
bindings += ["p": self.p]
return bindings
}()
我也有同样的问题。删除预编译头和派生数据似乎可以解决这个问题。我不确定这是否会永久修复它,但至少目前它还在工作。我已经让Xcode 6的各种Beta挂起索引15秒左右。偶尔我会感到恼火,停止工作,并再次尝试立即工作。我还没有在转基因种子中看到这个问题。另一方面,从标题“Xcode Beta 6.1”。。。呵呵?现在还没有Xcode 6.1。是的,有:我的错误我被纠正了。它成功了。谢谢我第一次看到这样的东西。Swift显然还没有准备好投入生产。这在XCode 6.0.1中是否已修复?我仍然遇到这个问题。我在迁移到Xcode 6.1时遇到了类似的问题。我有一个菜单,定义为字典列表,比如private let menuData=[[]],它包含大约35行代码。Xcode挂在“索引|编译swift代码”中,在swift过程中CPU占100%。通过动态添加菜单的小部分进行修复!我想我也可以用Plist,但这不是重点。
var viewBindingsDict = ["a" : a, "b" : b, "c" : c, "d" : d, "e" : e]
viewBindingsDict += ["f" : f, "g" : g, "h" : h, "i" : i, "j" : j]
viewBindingsDict += ["k" : k, "l" : l, "m" : m, "n" : n, "o" : o]
viewBindingsDict += ["p" : p]
let viewBindingsDict = { () -> [String:UIView] in
var bindings = ["a" : self.a, "b" : self.b, "c" : self.c, "d" : self.d, "e": self.e]
bindings += ["f": self.f, "g" : self.g, "h" : self.h, "i" : self.i, "j" : self.j]
bindings += ["k" : self.k, "l" : self.l, "m" : self.m, "n" : self.n, "o" : self.o]
bindings += ["p": self.p]
return bindings
}()