可以在Google Go中编写macOS/Cocoa应用程序吗?
有Go-Obj-C桥吗?(在我看来,Obj-C的动态性非常适合Golang的接口)
我至少可以将两者链接在一起,让它们通过普通的C函数相互通信吗?
发布于 2016-03-02 22:38:11
你可以看看my blog post as an example。恐怕我没有一直在做这个项目,但是这里的the source code可以帮助你设置一个空的Cocoa/ObjC/Go项目。
正如自述文件中所提到的,您将能够做这样的事情。
package main
import (
"github.com/alediaferia/gogoa"
)
func main() {
app := gogoa.SharedApplication()
window := gogoa.NewWindow(0, 0, 200, 200)
window.SetTitle("Gogoga!")
window.MakeKeyAndOrderFront()
app.Run()
}发布于 2011-06-12 21:58:47
CGo使您能够调用C代码。
请参阅official blog post on it的CGo doc和信息性文档。
似乎还没有可可绑定/库,但您可能希望查看GTK package以供参考。
发布于 2013-04-15 17:24:40
现在似乎还没有绑定Cocoa to Go的包。Cocoa是用Objective-C编写的,Objective-C是C的超集。Objective-C消息被编译器翻译成C函数调用(或者至少过去是这样,对现代编译器不太确定),如下所示:
objc_msgSend(object, sel_getUid("foo:bar:err:"), var, var2, errVar);因此,在Go中使用Cocoa绝对是可能的。
如果你遇到一个问题,你发现你想在Go应用程序中使用Cocoa,我会退后一步,思考你试图解决的问题。Cocoa大量使用了命名参数,方法可以有相当长的签名。这在Objective-C中工作得很好,但我怀疑代码在Go中会看起来一样好。另一方面,Go解决了另一组问题。也许用Go编写一个库(应用程序逻辑),用Objective-C/Cocoa编写GUI代码就可以了?
TL;DR:用Go编写模型,用Objective-C编写图形用户界面代码怎么样?
https://stackoverflow.com/questions/6322194
复制相似问题