У меня есть приложение, которое проверяет параметры командной строки и сохраняет значения в постоянных хранилищах.Одним из них является пароль, который я не хочу, чтобы его видели люди с «пс» и друзьями.Подход, который я сейчас рассматриваю, заключается в том, чтобы после того, как я сохранил нужные значения, перезапустить процесс без параметров командной строки.Мой наивный подход заключается в том, что args [0] - это путь к приложению:
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:[args objectAtIndex:0]];
[task launch];
[task release];
[NSApp terminate:nil];
Дочерний объект запущен.Однако, когда мое приложение закрывается, ребенок не кажется сиротой, а застревает.Неужели я просто отошел от этого?
Больше информации: Кажется, что когда я вызываю [NSApp terminate: nil], запущенный NSTask застревает, но если я просто завершаю работу (), то он работает нормально,Тем не менее, я обеспокоен тем, что открытые объекты (связка ключей, plist и т. Д.) Будут в плохом состоянии, если я сделаю это.
И обратите внимание, что множество примеров кода, посвященных некоторым сторожевым таймерамкак процесс, который при необходимости перезапускает отдельный процесс.Я пытаюсь перезапустить текущий процесс, который уже запущен из этого же процесса.