Swift SnapKit中的不稳定错误

Swift SnapKit中的不稳定错误,swift,macos,runtime-error,macos-sierra,snapkit,Swift,Macos,Runtime Error,Macos Sierra,Snapkit,下面是我的viewDidAspect()方法,我正试图用它为我的应用程序创建一个功能原型。graphicsView实例变量通过故事板绑定到我编写的NSView子类的实例,该子类又包含在NSSplitView中的NSScrollView中。此代码位于该视图的视图控制器内 override func viewWillAppear() { super.viewWillAppear() let red = CGColor.init(red: 1, green:

下面是我的viewDidAspect()方法,我正试图用它为我的应用程序创建一个功能原型。graphicsView实例变量通过故事板绑定到我编写的NSView子类的实例,该子类又包含在NSSplitView中的NSScrollView中。此代码位于该视图的视图控制器内

    override func viewWillAppear() {
        super.viewWillAppear()

        let red = CGColor.init(red: 1, green: 0, blue: 0, alpha: 1)
        self.view.layer?.backgroundColor = red

        let box = NSTextView()
        self.graphicsView.addSubview(box)
        box.snp.makeConstraints { (make) -> Void in
            make.edges.equalTo(self.graphicsView).inset(NSEdgeInsetsMake(100, 100, self.graphicsView.bounds.height - 200, self.graphicsView.bounds.width - 300))
        }
        box.textStorage?.append(NSAttributedString(string: "Hello Sailor"))
        box.alignCenter(self)
    }
执行时,出现错误
无法形成对类NSTextView的实例(0x6000001224e0)的弱引用。此对象可能已过度释放,或正在解除分配过程中。
以及约束的尾随闭包的结束括号上常见的EXC_BAD_指令错误

就我所见,NSTextView将被
强烈保留,因此我无法看到错误的来源。错误显示在
ConstraintItem.init(目标:AnyObject?,属性:ConstraintAttributes)
的第一行。按照我在这里发布的自述中的说明;SnapKit团队中的某个人是否可以进一步说明这个错误?(如果我移除
-相关代码,应用程序将正常工作。)

补充资料:

该异常发生在ConstraintItem.swift的第37行,即
self.target=target
。我在该行前面设置了一个断点,并在调试器中执行了e target;以下是我得到的:

(lldb) e target
(AnyObject?) $R1 = (instance_type = 0x0000608000164c80) {
  instance_type = 0x0000608000164c80 {
    AppKit.NSTextView = {
      baseNSText@0 = <extracting data from value failed>

    }
    title = "some random text"
    minimumWidth = 100
  }
}
(lldb)e目标
(任何对象?)$R1=(实例类型=0x00006800164C80){
实例类型=0x00006800164C80{
AppKit.NSTextView={
baseNSText@0 = 
}
title=“一些随机文本”
最小宽度=100
}
}

我找到了几个答案

  • 如何搜索谷歌仍然很重要。我对我的搜索进行了更多的修改,在这里我发现了,简短的版本是,它说你不能形成一个特定于NSTextView的弱引用,并包含一个指向解释性文档的链接

  • 也许更有趣的是,我还找到了我在标题中提到的“不稳定”错误的答案——我开发的其中一台机器原来有Swift 3.1,但另一台有3.0.2。最新版本没有显示形成薄弱环节的错误,这表明苹果已经升级了NSTextView实现


  • 我在原始帖子的异常点添加了相关的调试器输出。