Я думаю следующее:
bool equals = (String.Compare(input, input.ToUpper(), StringComparison.Ordinal) == 0)
будет работать также, и можно удостовериться, что сравнение сделано, не принимая во внимание строковое преобразование регистра (я думаю, что VB.NET игнорирует регистр по умолчанию). O даже используют String.CompareOrdinal(input, input.ToUpper())
.
NSTask довольно легко сделать с этим. Для синхронного вызова вы можете использовать что-то вроде этого фрагмента:
NSString *path = @"/path/to/executable";
NSArray *args = [NSArray arrayWithObjects:..., nil];
[[NSTask launchedTaskWithLaunchPath:path arguments:args] waitUntilExit];
Вызов -waitUntilExit
проверяет его завершение перед продолжением. Если задача может быть асинхронной, вы можете удалить этот вызов и просто позволить NSTask сделать это.
Если вы просто хотите что-то запустить и не заботитесь о выводе или коде возврата (например, вы хотите прикоснуться к файлу), вы можете просто сделать
system("touch myfile.txt");
Easy as that .
Используя класс NSTask, ваша программа может запускать другую программу как подпроцесс и контролировать выполнение этой программы.