Objective c 没有NSApplication实例的Mac OS X应用程序可以吗?

Objective c 没有NSApplication实例的Mac OS X应用程序可以吗?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,在Info.plist中,我有一个键“Application is background only”,它的值是“Yes”。 大多数代码是在C++中的。 通常的最后一行 return NSApplicationMain(argc, argv); 在main()中删除。相反,main会启动一些线程,阻塞并在某些条件下等待退出 是的,没问题。NSApplication在AppKit中声明,因此仅在GUI应用程序中使用。一个应用程序可以使用基金会,不需要NSpApple。 < P>是和No./P> 您

在Info.plist中,我有一个键“Application is background only”,它的值是“Yes”。 大多数代码是在C++中的。 通常的最后一行

return NSApplicationMain(argc, argv);

在main()中删除。相反,main会启动一些线程,阻塞并在某些条件下等待退出

是的,没问题。NSApplication在AppKit中声明,因此仅在GUI应用程序中使用。一个应用程序可以使用基金会,不需要NSpApple。

< P>是和No./P> 您可以拥有一个没有它的进程(通俗地说是一个应用程序),它可以很好地处理Unix方面的事情,并且其行为与任何其他无头进程一样

您不能拥有一个完全成熟的Cocoa应用程序,因为
NSApplication
(或子类)的实例不仅仅是应用程序的一部分,在非常真实的意义上,主要的应用程序对象是应用程序。读取Info.plist、连接Cocoa应用程序系统、Applescript系统等都是由
NSApplicationMain()
完成的,这使得它成为capital-a应用程序的一项要求


你可以自己设置这些东西,但我不知道有什么方法可以这样做,即使我这样做了,我也不推荐。如果您希望您的程序表现得像一个应用程序,并与事物的Cocoa方面进行交互,
返回NSApplicationMain(argc,argv)
是等待结束
main()

如果你的应用程序想要包含在运行循环事件和几乎所有其他标准事件中,你需要一个NSApplication实例。如果你有一个主方法,你就要负责你需要运行的其他代码。编辑:应用程序使用C++和Objto-C的混合,并且使用COCOA类。但是,它没有UI。如果尝试使用子进程的pid从其runningApplicationWithProcessIdentifier方法获取NSRunningApplication实例,它将返回nil。如果我进行更改以返回NSApplicationMain(argc、argv);但是,在main的末尾,此方法有效,我可以获得NSRunningApplication instance.Meh。我认为这不是一个应用程序。它只是一个命令行实用程序。。。