Как выйти из себя в приложении 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 ответа

Решение
  1. Вам не нужно запускать open с помощью NSTask... open просто звонит в Launch Services, некоторые функции которого доступны напрямую из NSWorkspace.

  2. Чтобы выйти, вы просто позвоните [[NSApplication sharedApplication] terminate:nil], Увидеть NSApplication документация

Здесь ответили: правильный способ выхода из приложения iPhone? Однако вы также должны взглянуть на ответ Августа. Хотя это не принятый ответ, за него проголосовали выше, и он также следует установленным стандартам Apple, так как Apple советует не форсировать выход из приложений iPhone.

Другие вопросы по тегам