- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
swift documentation对于 @NSApplicationMain
读取:
Using this attribute is equivalent to calling the NSApplicationMain(::) function and passing this class’s name as the name of the delegate class.
但 NSApplicationMain
签名只接收 argc
和 argv
,无法将“类名”传递给它。在互联网上,我发现了两个如何使用 @NSApplicationMain
等效项的“示例”。第一个简单地调用 NSApplicationMain
:
NSApplicationMain(Process.argc, Process.unsafeArgv)
第二个创建共享应用程序单例并为其设置委托(delegate):
NSApplication.sharedApplication()
NSApp.delegate = AppDelegate()
NSApplicationMain(Process.argc, Process.unsafeArgv)
令人惊讶的是,向导创建的应用程序适用于两个版本(使用了 ex delegate,我可以从中获取 NSLog
)!怎么会这样?也许 osx 应用程序会忽略委托(delegate),而总是使用 main nib file
中指定的委托(delegate)?还是 NSApplicationMain
和 UIApplicationMain
的一些隐藏逻辑我还不能掌握?有什么提示吗?
最佳答案
是的,那里的文档似乎不太正确。我推荐 filing a bug所以他们知道要修复文档。
设置 Cocoa 应用程序的传统方法是这样的:
NSApplication
或其子类)MainMenu.nib
(或 xib
)文件包含应用委托(delegate)类的实例main
调用 NSApplicationMain
,它使用第 1 步和第 2 步中的信息来设置您的应用。您也可以在 C main
中以编程方式完成这一切,正如您在问题中所展示的那样。
Swift @NSApplicationMain
指令自动处理应用程序的启动,并将委托(delegate)设置为您应用该指令的类(因此您不再需要 nib 来设置委托(delegate),也不需要以编程方式设置委托(delegate))。
关于swift - swift 的 @NSApplicationMain 文档是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504159/
这个程序有什么问题? // main.m #import #import int main(int argc, char *argv[]) { return NSApplicationMa
swift documentation对于 @NSApplicationMain 读取: Using this attribute is equivalent to calling the NSApp
所以在这里我试图摆脱@NSApplicationMain 以更深入地了解事情是如何工作的。我在这里从 musically_ut 找到了这个不错的答案 OSX application without s
The documentation for the NSApplicationMain function说是 loads the main nib file from the application’
几天前我关闭了我的 xcode 项目,当我回来时,它一直崩溃!我没有更改任何代码,所以我不知道发生了什么。我在 NSApplicationMain() 方法内的 strlen 上收到 EXC_BAD_
我已阅读questions/559482/why-doesnt-an-iphone-apps-main-function-ever-get-a-chance-to-finish ,这解释了为什么 NS
在 XCode 中创建一个新的 Cocoa 项目会给我一个 AppDelegate.swift 文件,如下所示: import Cocoa @NSApplicationMain class AppDe
如果这是一个愚蠢/简单的问题,我深表歉意,但仍在适应 Mac 领域的一切。 Dave 很友善地在这里回答了我的问题: Modify NSEvent to send a different key th
我是一名优秀的程序员,十分优秀!