gpt4 book ai didi

swift - addSubview 上的 NSViewController 子类 EXC_BAD_INSTRUCTION

转载 作者:行者123 更新时间:2023-11-30 11:38:39 26 4
gpt4 key购买 nike

我正在尝试编写一些与 macOS 和 iOS 跨平台的代码。我知道这不是这样做的方法,但是我不得不奇怪地开发东西,因为我正在写一本 Playground 书,而 Metal 不能在模拟器上工作。

所以我有以下类型定义。有两套,一套用于当我希望在 MacOS 中编译时,另一套用于 iOS

//iOS
public typealias View = UIView
public typealias ViewController = UIViewController

//macOS
public typealias View = NSView
public typealias ViewController = NSViewController

我一次只保留一组未注释的内容。

以下代码在 iOS 上完美运行

public class PVC: NSViewController{
public override func viewDidLoad() {
super.viewDidLoad()

}
public required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

public init() {
super.init(nibName: nil, bundle: nil)
}
public func addView(viewer: NSView) {
view.addSubview(viewer)
}
}

let pvc = PVC()
let grid = //UIView initializer
pvc.addView(viewer: grid)

但是,在 MacOS 上,pvc.addView 行进行编译,但会导致消息错误:执行被中断,原因:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。
进程已留在中断点,运行时使用“thread return -x”返回到表达式求值之前的状态。

我已经检查过, GridView 的格式正确,并且可以在必要时添加到默认 IOS 项目的 View Controller 中。这只是 NSViewControllers 的一些问题导致了这个问题。

最佳答案

您没有从 Storyboard 或 Xib 加载 View Controller 。如果您正在使用,请尝试从 Storyboard/Xib 初始化您的 View Controller 。那么这个就得不到了。

关于swift - addSubview 上的 NSViewController 子类 EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462786/

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