gpt4 book ai didi

swift - SnapKit 中的不稳定错误

转载 作者:行者123 更新时间:2023-11-30 12:25:13 30 4
gpt4 key购买 nike

以下是我的 viewDidAppear() 方法,我试图用它为我的应用程序构建功能原型(prototype)。 GraphicsView 实例变量通过 Storyboard绑定(bind)到我编写的 NSView 子类的实例,该实例又包含在 NSSplitView 内的 NSScrollView 中。此代码位于该 View 的 View Controller 内。

    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_INSTRUCTION 错误。

据我所知, NSTextView 将被 box 强烈保留,因此我不知道错误的根源。该错误出现在 ConstraintItem.init(target: AnyObject?, attribute: ConstraintAttributes) 的第一行。根据我在这里发布的自述文件中的说明; SnapKit 团队中的某个人是否可以对这个错误提供任何额外的说明? (如果我删除 box 相关代码,应用程序可以正常工作。)

添加信息:

异常发生在 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
}
}

最佳答案

我找到了几个答案。

  1. 您搜索 Google 的方式仍然很重要。我进一步改变了我的搜索,并发现了 this在这里,它的简短版本是它说你不能专门形成对 NSTextView 的弱引用,并包含一个解释性 Clang 文档的链接。

  2. 也许更有趣的是,我还找到了标题中提到的“不稳定”错误的答案 - 我开发的其中一台机器安装了 Swift 3.1,但另一台机器安装了 3.0.2。最新版本没有出现形成薄弱环节的错误,这表明 Apple 已经升级了 NSTextView 实现。

关于swift - SnapKit 中的不稳定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44294216/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com