Win*_*ron 0 macos cocoa objective-c
因此,我需要在OSX上注册一个函数(使用Xcode/objective C),该函数将在程序终止时注册要调用的特定函数.
我碰到了这个,但我猜这是适用于iOS而不适用于OSX.
我用NS替换了UI并给了它一个镜头,但它没有用.
NSApplication *app = [NSApplication sharedApplication];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(applicationWillTerminate:)
name:BeCalledOnExit object:app];
Run Code Online (Sandbox Code Playgroud)
但这不是编译.它在名称上说了一些东西:当它在函数之前明显位于.h和.m文件时,是一个未声明的标识符.
我遇到另一个用过这个的小伙子:
-(BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender{
return TRUE
}
Run Code Online (Sandbox Code Playgroud)
但它不适合我,因为我的应用程序是一个完整的状态栏应用程序.
基本上我在我的应用程序中创建一些临时文件,在退出之前,我想确保我的应用程序正在清除这些文件.我把它放在/ tmp/..不想要太多空间.
我真的想要一个像gcc/python这样的解决方案,
atexit(functionName);
Run Code Online (Sandbox Code Playgroud)
- (void)applicationWillTerminate:(NSNotification *)notification在AppDelegate上实现,它将在应用程序终止之前调用
因此,AppDelegate的实现可能如下所示:
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
NSLog(@"I FINISHED LAUNCHING!");
}
- (void)applicationWillTerminate:(NSNotification *)notification
{
NSLog(@"I WILL TERMINATE NOW!!!");
}
@end
Run Code Online (Sandbox Code Playgroud)