我尝试写一些代码,并与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。
你是不是无论从故事板或Xib.Try加载视图 - 控制,如果你正在使用初始化从情节提要/ XIB您的视图 - 控制。那么这不会得到。