gpt4 book ai didi

swift - 默认 0 不是有效的连接 ID。以编程方式使用 swift 和 cocoa 时出错

转载 作者:行者123 更新时间:2023-12-04 17:29:43 26 4
gpt4 key购买 nike

我正在用 swift 编写一个针对 mac os 的游戏引擎。我使用 metal 进行渲染,使用 cocoa 处理窗口。整个应用程序都是以编程方式制作的。我没有使用 Storyboard或任何 xibs

我有这个文件:Window.swift

import Cocoa

class Window : NSObject
{

let width, height : Int
let title : String
let size : CGSize
let rect : NSRect
let window : NSWindow

init(width : Int, height: Int, title: String) {
self.width = width
self.height = height
self.title = title
self.size = CGSize(width: width, height: height)
self.rect = NSRect(origin: .zero, size: size)
self.window = NSWindow(contentRect: rect, styleMask:
.closable, backing: .buffered, defer: false)
}

func createWindow()
{
window.title = title
window.isOpaque = false
window.center()
window.isMovableByWindowBackground = true
window.backgroundColor = NSColor.gray
window.makeKeyAndOrderFront(window)
}
}

这是 ma​​in.swift

let window = Window.init(width: 1280, height: 720, title: "Serious")
window.createWindow()

这段代码看起来不错,但出于某种原因我得到了这个错误:2020-03-25 10:34:49.719557-0700 GameEngine[1355:50613] [默认] 0 不是有效的连接 ID。2020-03-25 10:34:49.727881-0700 GameEngine[1355:50613] [默认] 0 不是有效的连接 ID。2020-03-25 10:34:49.728046-0700 GameEngine[1355:50613] [默认] 0 不是有效的连接 ID。程序以退出代码结束:0

最佳答案

这个答案有点晚了,但我发布它是希望像我这样的其他可怜的笨蛋可以免于逐步执行汇编指令的艰苦过程。正如 Willeke 在评论中提到的,无效的样式掩码将导致记录此消息。在我的例子中,它是一个可关闭的、可小型化的、可关闭的窗口。添加标题标志解决了这个问题。我的理解是,如果您在初始化 Application 实例或调用 NSApplicationMain 之前创建窗口,样式位的无效组合可能不会引发异常,但会导致执行采用最终尝试在错误的地方,导致 ID 为 0 被发送到窗口服务器。

关于swift - 默认 0 不是有效的连接 ID。以编程方式使用 swift 和 cocoa 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60854494/

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