Какао - создать несколько экземпляров моего приложения

Мое требование - создать несколько экземпляров моего приложения. Я могу успешно создать несколько экземпляров без аргументов, но так как я передаю некоторый аргумент с помощью runCommand, он создает бесконечные экземпляры моего приложения, и чтобы остановить это, мне нужно принудительно завершить работу моей Системы.

Заранее спасибо:

мой рабочий код ниже:

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
    isOpenFileFlag = YES;

    NSString *filePathStr = [NSString stringWithFormat:@"open -n /Applications/MyApp.app --args %@",filename];

    [self runCommand:filePathStr];

    return YES;
}

- (NSString *) runCommand: (NSString *) commandToRun {
    NSTask *task;
    task = [[NSTask alloc] init];
    [task setLaunchPath: @"/bin/sh"];

    NSArray *arguments = [NSArray arrayWithObjects: @"-c" , [NSString stringWithFormat:@"%@", commandToRun], nil];
    NSLog(@"run command: %@",commandToRun);
    [task setArguments: arguments];

    NSPipe *pipe;
    pipe = [NSPipe pipe];
    [task setStandardOutput: pipe];

    NSFileHandle *file;
    file = [pipe fileHandleForReading];

    [task launch];

    NSData *data;
    data = [file readDataToEndOfFile];

    NSString *output;
    output = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
    return output;

}

Единственное, что мне нужно сделать, это создать несколько экземпляров моего приложения по одному.

1 ответ

В настоящее время вы создаете цикл, потому что каждый экземпляр, который запускает, запускает другой экземпляр и т. Д. Вы должны прекратить создавать экземпляры, когда их достаточно. (Капитан Очевидность)

Я думаю, что есть несколько способов сделать это. Вы можете проверить, сколько экземпляров вашего приложения запущено в данный момент.

Другой подход (что я хотел бы сделать): создать NSNumber объект при первом запуске, в который вы можете написать NSPasteBoard, Каждый второй экземпляр загружает номер и добавляет его к нему. Если у вас правильный счет, остановите цикл.

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