当前位置: 首页 > 面试题库 >

由于奇怪的原因,Xcode Beta 6.1和Xcode 6 GM卡住了索引

家西岭
2023-03-14
问题内容

我正在开发一个快速的应用程序,在某个时候我有一个类似于以下代码:

 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和使用100%以上CPU的swift。

我已经使用上面的代码创建了这个示例项目:https
:
//dl.dropboxusercontent.com/u/1393279/aaaaaaa.zip

我已经尝试过清理派生数据,重新安装Xcode,重新启动,等待几分钟等等。这根本不起作用。


问题答案:

几次类似的事情发生在我身上,我通过 将长语句分成多行来解决

我在操场上测试了您的代码,立即注意到SourceKitService进程占用了100%的CPU。

在您的代码中,我看到的最长的语句是字典初始化,因此第一种方法是使其可变并以每行较少的项目数进行初始化。

Swift没有+=为字典提供运算符,因此我们首先需要一个

func +=<K, V> (inout left: Dictionary<K, V>, right: Dictionary<K, V>) -> Dictionary<K, V> {
    for (k, v) in right {
        left.updateValue(v, forKey: k)
    }
    return left
}

使用工具集中的字典,可以按以下方式初始化字典:

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]

每行最多选择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
}()


 类似资料:
  • 问题内容: 我正在尝试使用标准方式使用jdbc连接到Informix数据库服务器: 但是它一直尝试连接并且不会抛出错误消息(我想它尝试连接是因为它什么都不显示)。我正在使用IBM Informix驱动程序4.10.00.1534和Java 1.7。到目前为止,我一直使用这种方法连接到Informix服务器,实际上,只有一台服务器失败。我可以使用odbc通过Informix客户端连接到该服务器,但是

  • 我想用fsolve数值求解一个非线性超越方程的根。 下面的代码执行此任务。

  • 我正在使用2.1.0 SDK和cloudshell来启动我的工作。 (606330F83AB2470F):工作流失败。原因:(606330F83AB24C58):数据流似乎卡住了。请联系Dataflow团队,网址是http://stackoverflow.com/questions/tagged/google-cloud-dataflow。

  • 我正在阅读神经网络和深度学习(前两章),我正在尝试跟进并构建自己的ANN以从MNIST数据集中对数字进行分类。 我已经抓耳挠腮好几天了,因为我的实现在从测试集中分类数字时达到了约57%的准确率(有些5734/10000)在10个纪元后(训练集的准确率在第10个纪元后停滞不前,测试集的准确率可能会因为过度拟合而恶化)。 我使用与书中几乎相同的配置:所有层完全连接的2层前馈ANN(784-30-10)

  • 我正在使用项目Reactor,我有一个很长的流程,其中我得到了一个异常(当使用Jackson解析字符串到json时)。问题是,即使我使用 流量不会继续。我确实看到了错误日志,流没有抛出异常,但流不会继续执行。发生这种情况的原因是什么? 当我将代码更改为(不需要的)时,数据管道不会停止:

  • 本文向大家介绍sqoop export导出 map100% reduce0% 卡住的多种原因及解决,包括了sqoop export导出 map100% reduce0% 卡住的多种原因及解决的使用技巧和注意事项,需要的朋友参考一下 我称这种bug是一个典型的“哈姆雷特”bug,就是指那种“报错情况相同但网上却会有各种五花缭乱解决办法”的bug,让我们不知道哪一个才是症结所在。 先看导入命令: 这个