上addSubview NSViewController子EXC_BAD_INSTRUCTION

问题描述 投票:0回答:1

我尝试写一些代码,并与MacOS和iOS的跨平台。我知道这是不是做这个但是我不得不古怪发展的事情,因为我做的一个游乐场书,金属不会在模拟器的工作方式。

所以,我有以下类型定义。有两套其中之一,当我想在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行编译,但会导致当消息error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0). The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.运行。

我已经确认并适当地形成网格视图和例如可以添加到默认的IOS项目,如果有必要的视图控制器。这只是一些关于引起此问题NSViewControllers。

swift cocoa nsviewcontroller
1个回答
0
投票

你是不是无论从故事板或Xib.Try加载视图 - 控制,如果你正在使用初始化从情节提要/ XIB您的视图 - 控制。那么这不会得到。

© www.soinside.com 2019 - 2024. All rights reserved.