Swift SnapKit中的不稳定错误
下面是我的viewDidAspect()方法,我正试图用它为我的应用程序创建一个功能原型。graphicsView实例变量通过故事板绑定到我编写的NSView子类的实例,该子类又包含在NSSplitView中的NSScrollView中。此代码位于该视图的视图控制器内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:
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
}
}
我找到了几个答案
我在原始帖子的异常点添加了相关的调试器输出。