Swift Xcode索引冻结或缓慢

Swift Xcode索引冻结或缓慢,swift,indexing,osx-yosemite,aws-sdk,xcode6.1,Swift,Indexing,Osx Yosemite,Aws Sdk,Xcode6.1,也许这只是我经历了一个如此恼人的“特征”: 从Xcode 6.0.1升级到Xcode 6.1后,情况发生了变化。Xcode 6.1永远在为项目编制索引或编译源文件。这个项目不是一个大项目。它只是在工作区中包含一堆Swift文件和AWS SDK 2.0 CoCoPapod。我不认为这会妨碍整个索引和编译的顺利进行。我尝试了一些aws sdk ios示例,只是想看看Xcode 6.1如何在这些示例上工作,结果还是一样 到目前为止,我尝试了哪些解决方案: 删除“管理器”中的“衍生数据”,然后重新打开并

也许这只是我经历了一个如此恼人的“特征”:

从Xcode 6.0.1升级到Xcode 6.1后,情况发生了变化。Xcode 6.1永远在为项目编制索引或编译源文件。这个项目不是一个大项目。它只是在工作区中包含一堆Swift文件和AWS SDK 2.0 CoCoPapod。我不认为这会妨碍整个索引和编译的顺利进行。我尝试了一些aws sdk ios示例,只是想看看Xcode 6.1如何在这些示例上工作,结果还是一样

到目前为止,我尝试了哪些解决方案:

  • 删除“管理器”中的“衍生数据”,然后重新打开并关闭工作区。(未能修复)
  • 在.xcodeproj文件上“显示包内容”并删除.xcworkspace,如()
  • 不幸的是,他们都没有成功

    另外,也许我应该试着重新创建这个项目? 我的电脑设置:
    MacBook Pro(视网膜,13英寸,2014年年中),内存8 GB 1600 MHz DDR3,配备优胜美地。(我认为这对于运行这个小项目来说已经足够了。)

    升级到6.1后,我遇到了同样的问题。Xcode在编译或索引时会遇到问题,而不会生成特定的错误消息

    通过将swift文件中的一些较长表达式分解为多个较短的表达式,最终解决了该问题。我的程序的一部分将许多不同的字符串变量组合成一个较长的字符串。尝试将它们组合到单个表达式中并使用加法赋值运算符均失败。我可以通过做类似于以下(简化)的事情使其工作:

    在以前的Xcode版本中,我多次收到以下错误,由此产生了这个想法 “表达式太复杂,无法在合理的时间内解决;考虑把表达式分解成不同的子表达式。” 希望这有帮助

    最后,我“解决”了这个问题,尽管这只是一个解决办法

    我创建了另一个项目,并向其中逐个添加了文件。然后我发现了一个“很长”的viewcontroller.swift文件。然后,我将其代码分解成模块,并将那些反复使用的代码转换成另一个swift文件中的函数。而且,我在网上接受了一个建议,长的表达应该被分解成短的表达。然后是索引工作和编译工作

    所以现在,我已经“解决”了


    但是,我认为这是不对的。Xcode IDE应该能够处理我的“很长”swift文件,只有1500行。我相信这肯定是一个bug(已经存在很长时间了),尽管Xcode 6.1已经是从Xcode 6.0.1升级而来。

    我也遇到了同样的问题。我尝试了上面提到的两种解决方案(删除派生数据和删除.xcworkspace),但都没有成功。我还试着一点一点地慢慢注释掉大部分代码,删除文件,直到几乎什么都没有了,索引仍然被卡住

    我确实找到了一个适合我的解决方案,我用一个旧的Xcode版本6.1(6A1030)打开了这个项目,索引没有问题,然后又回到了我以前使用的最新的Xcode版本6.1(6A1052d),索引已经修复,并且继续工作得很好

    我的结论是,这是Xcode版本6.1(6A1052d)的一个bug,我希望在未来的版本中会有所改进


    问题偶尔会出现,每次都是相同的解决方法。我想另一个解决方案是只使用较旧的Xcode版本6.1(6A1030),但它不适用于运行iOS 8.1的设备,也不会有最新的错误修复。

    我也遇到了这个问题,并通过使用“+”操作符删除/更改表达式来解决它

    我改变了这一点:

    var mainArray = arrayOne + arrayTwo + arrayThree + arrayFour + arrayFive
    
    为此:

    var mainArray = arrayOne
    mainArray += arrayTwo
    mainArray += arrayThree
    mainArray += arrayFour
    mainArray += arrayFive
    
    它解决了这个问题


    2013年末,我的机器是一台最大容量的MBP。对我来说,我删除了Xcode应用程序,再次下载并安装了它。这解决了问题,至少现在是这样。

    Xcode 6.2 beta版为我解决了问题。不是闪电般的快,但至少它不会永远。测试版不会安装在常规Xcode安装之上,因此如果您不喜欢测试版,可以将其删除


    您可能希望更新到Xcode 6.1.1


    它已经正式发布并为我们解决了索引问题。在更新描述中,它说他们已经应用了稳定性修复程序,因此它很可能会以更稳定的方式运行。

    如果您不介意在他们弄明白之前恢复到6.0.1,这对我来说是有效的。我对6.1和6.1.1都有同样的问题。现在我好了。6.2版本出来后我会试试

    您可以在其官方开发网站上找到apple软件的早期版本,网址为:


    如果这样做,请确保首先删除当前的Xcode副本。

    我尝试了上面的许多建议,包括拆分文件、安装Xcode 6.2 beta和中断字符串连接语句。它最终为我做的是将我用于测试数据的字典文本声明数组拆分为多个
    .append
    语句

    // This causes indexing/building to hang...
    var test = [ [ "a": false, "b": "c" ],
                 [ "a": false, "b": "c" ],
                 [ "a": false, "b": "c" ],
                 [ "a": false, "b": "c" ],
                 [ "a": false, "b": "c" ],
                 [ "a": false, "b": "c" ] ]
    
    // This works fine.
    var test = [ [ "a": false, "b": "c" ] ]
    test.append([ "a": false, "b": "c" ])
    test.append([ "a": false, "b": "c" ])
    test.append([ "a": false, "b": "c" ])
    test.append([ "a": false, "b": "c" ])
    test.append([ "a": false, "b": "c" ])
    

    另外,值得一提的是,这个数组中的第6个条目是导致我出现问题的原因;五个就可以了。

    你在用椰子豆吗?今天早些时候我遇到了同样的问题。(使用xCode 6.1.1)

    为了解决这个问题,我删除了
    ~/Library/Developer/Xcode/DerivedData
    、项目目录中的
    Pods
    文件夹和
    .xcworkspace
    中的所有内容


    然后,我打开终端,导航到我的项目目录,并再次运行了
    pod安装。

    我使用的是Xcode 6.1.1,swift文件与MacBook Pro完全相同

    当我不断向3D字符串数组中添加行时,Xcode突然变得不可用,现在我什么都做不了


    将尝试恢复到6.1,希望问题会消失。

    在我的Xcode上,解决方案是关闭所有冗余窗口。由于某些原因,许多打开的窗口使Xcode非常慢。

    // This causes indexing/building to hang... var test = [ [ "a": false, "b": "c" ], [ "a": false, "b": "c" ], [ "a": false, "b": "c" ], [ "a": false, "b": "c" ], [ "a": false, "b": "c" ], [ "a": false, "b": "c" ] ] // This works fine. var test = [ [ "a": false, "b": "c" ] ] test.append([ "a": false, "b": "c" ]) test.append([ "a": false, "b": "c" ]) test.append([ "a": false, "b": "c" ]) test.append([ "a": false, "b": "c" ]) test.append([ "a": false, "b": "c" ])
        let hangsInsteadOfError = { l, r in
            return l.nameFirst < r.nameFirst
            || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }
    
        let fixingErrorAvoidsHang = { (l:User, r:User) -> Bool in
            return l.nameFirst < r.nameFirst
                || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }
    
    // instead of this, which freezes indexing
    let keys = [keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM]    
    
    // and instead of this, which is ugly & lengthy
    var keys = [KeyboardKey]()
    keys.append(keyQ)
    keys.append(keyW)
    ...
    keys.append(keyM)
    
    // use this:
    var keys = [KeyboardKey]()
    keys.appendContentsOf([keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM])
    
    var sectionTuples: [(section: String, rows: [(name: String, subtitle: String)])] = []
    let subtitle1: String = "" // something calculated dynamically
    let subtitle2: String = "" // something calculated dynamically
    sectionTuples = [(
    section: "Section 1", rows: [
    (name: "name1", subtitle: subtitle1),
    (name: "name2", subtitle: subtitle2)
    ])]
    
    var parameter = [String : AnyObject]()
    var finalArray = [parameter]
    
    for item in listArray
    {
        parameter = ["A": item.a as AnyObject, "B": item.b as AnyObject, "C": item.c as AnyObject, ... , "Z": item.z as AnyObject]
    
        finalArray.append(parameter)
    }
    
    var parameter = [String: AnyObject]()
    var finalArray = [parameter]
    
    for item in listArray
    {
        parameter["A"] = listArray.a as AnyObject
        parameter["B"] = listArray.b as AnyObject
        parameter["C"] = listArray.c as AnyObject
        parameter["D"] = listArray.d as AnyObject 
        .
        .
        .
        parameter["Z"] = listArray.z as AnyObject 
        finalArray.append(parameter)
    }
    
    if let date = function1()
    ?? function2()
    ?? function3()
    ?? function4()
    ?? function5()
    ?? function6()
    ?? function7()
    ?? function8()
    ?? function9()
    ?? function10() {
        return date
    }
    
    let x = (value as? Int) ?? someDefault
    
    guard let x = (dateFormatter().string(from: Date()) + msg + "\n").addingPercentEncoding(...) else { ... }
    
    private var overlayColors: [UIColor] = [UIColor(hex: "#b71c1c"), UIColor(hex: "#4a148c"),
                                            UIColor(hex: "#880e4f"), UIColor(hex: "#1de9b6"),
                                            UIColor(hex: "#f50057"), UIColor(hex: "#311b92"),
                                            UIColor(hex: "#f44336"), UIColor(hex: "#651fff"),
                                            UIColor(hex: "#d500f9"), UIColor(hex: "#3d5afe"),
                                            UIColor(hex: "#bf360c"), UIColor(hex: "#0d47a1"),
                                            UIColor(hex: "#006064"), UIColor(hex: "#2979ff"),
                                            UIColor(hex: "#ff6f00"), UIColor(hex: "#1a237e"),
                                            UIColor(hex: "#795548"), UIColor(hex: "#004d40"),
                                            UIColor(hex: "#00e676"), UIColor(hex: "#01579b"),
                                            UIColor(hex: "#33691e"), UIColor(hex: "#827717"),
                                            UIColor(hex: "#76ff03"), UIColor(hex: "#ffc400"),
                                            UIColor(hex: "#e65100"), UIColor(hex: "#00b0ff"),
                                            UIColor(hex: "#ff3d00"), UIColor(hex: "#616161"),
                                            UIColor(hex: "#263238"), UIColor(hex: "#ff1744")]