Как выйти из себя в приложении Objective-C?
У меня есть URLHandler, который запускает некоторые приложения, основной код выглядит следующим образом.
@implementation URLHandlerCommand
- (id)performDefaultImplementation {
NSString *urlString = [self directParameter];
NSLog(@"url :=: %@", urlString);
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/open"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"-a", @"Path Finder.app", urlString, nil];
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
return nil;
}
Поскольку целью этой подпрограммы является запуск другого приложения, я бы хотел, чтобы этот URLHandler завершал работу после запуска приложения. Как я могу это сделать?
2 ответа
Вам не нужно запускать
open
с помощьюNSTask
...open
просто звонит в Launch Services, некоторые функции которого доступны напрямую из NSWorkspace.Чтобы выйти, вы просто позвоните
[[NSApplication sharedApplication] terminate:nil]
, УвидетьNSApplication
документация
Здесь ответили: правильный способ выхода из приложения iPhone? Однако вы также должны взглянуть на ответ Августа. Хотя это не принятый ответ, за него проголосовали выше, и он также следует установленным стандартам Apple, так как Apple советует не форсировать выход из приложений iPhone.