Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 应用程序将终止,而应用程序应终止于';你不能在macOS上运行吗?_Objective C_Macos_Cocoa_Nsapplication_Nsapplication Delegate - Fatal编程技术网

Objective c 应用程序将终止,而应用程序应终止于';你不能在macOS上运行吗?

Objective c 应用程序将终止,而应用程序应终止于';你不能在macOS上运行吗?,objective-c,macos,cocoa,nsapplication,nsapplication-delegate,Objective C,Macos,Cocoa,Nsapplication,Nsapplication Delegate,我想在应用程序终止时做一些事情,因此我向我的AppDelegate添加了applicationShouldTerminate:和applicationWillTerminate方法。但是,当我从XCode运行我的应用程序,然后按⌘Q,两个方法都不会被调用 现在我正在通过记录和调用printf进行测试,当我退出我的应用程序时,我在任何地方都看不到任何输出。这似乎表明这应该是可行的。谷歌并没有产生任何有用的东西,搜索GitHub(例如代码)时,大部分返回的应用程序都会看到其他应用程序被终止 为什么应

我想在应用程序终止时做一些事情,因此我向我的AppDelegate添加了
applicationShouldTerminate:
applicationWillTerminate
方法。但是,当我从XCode运行我的应用程序,然后按
⌘Q
,两个方法都不会被调用

现在我正在通过记录和调用
printf
进行测试,当我退出我的应用程序时,我在任何地方都看不到任何输出。这似乎表明这应该是可行的。谷歌并没有产生任何有用的东西,搜索GitHub(例如代码)时,大部分返回的应用程序都会看到其他应用程序被终止

为什么
应用程序不应该终止:
应用程序将终止
被调用

以下是我的应用程序委托中的方法实现:

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSNotification *)aNotification {
    printf("printf applicationShouldTerminate");
    NSLog(@"NSLog applicationShouldTerminate");
    return NSTerminateNow;
}

- (void)applicationWillTerminate:(NSNotification *)aNotification {
    printf("printf applicationWillTerminate");
    NSLog(@"NSLog applicationWillTerminate");
}

(我还通过在Xcode中创建一个全新的项目进行了测试,您可以在中找到)。

我通过编辑
Info.plist
和设置
应用程序可以在用户关闭或注销
NO
时立即终止

我觉得很奇怪,Xcode自动为
应用程序生成方法存根willterminate
,但是默认情况下,由于这个
Info.plist
键,它不起作用。为了将来的参考,我运行的是Xcode版本11.2.1(11B500)


(在上找到此答案。)

对我有效-您如何创建项目,以及“退出”菜单项连接到了什么操作?@red\u nerge我刚刚通过创建一个全新的Xcode项目进行了测试。还是不行。您可以在此处看到我的完整项目: