Если «на сборку» вы имеете в виду до собственно компиляции кода, это означает, что вам нужно открывать Xcode каждый раз, когда вы хотите запустить свой скрипт. Я не верю, что есть способ сделать это. Однако вы можете использовать Automator для получения строки перед запуском кода, но вам нужно будет использовать Automator для создания приложения, которое является ограничивающим. Другим методом было бы сделать 2 класса в вашем приложении: класс перед запуском и основной класс. Класс pre-run подскажет пользователю или прочитает файл (или что-то в этом роде), чтобы получить строку, и запустить основной класс специальным образом в зависимости от строки.
Edit: ответ на комментарий
Я не знаю, как сделать это в Objective-C, но вы всегда можете переименовать главный файл в main.mm (.mm файлы содержат как C++ и Objective -C) и добавить к нему код C++. Однако это с помощью консоли:
using namespace std // all (this line is optional)
string s = ""; // this
cin >> s; // is C++ (if you omitted the optional line above, the correct code is std::cin >> s;
MainClass mc = //constructor for your "main class" here in Objective-C
if(s == someCertainString){ //hypothetical string and C++ condition checking for a C++ string
[mc doThisACertainWay:];
}else if(s == someOtherString){ // again, hypothetical string that you need to declare
[mc doThisADifferentWay];
}
Я не на ПК, в настоящее время, так что я не могу проверить код, но вы можете искать, как читать и записывать файлы в C++ и Obj-C. Единственный намек, который я могу дать прямо сейчас, - это то, что вам нужно #include <iostream>
в начале, если вы используете C++ для чтения/записи файла.
Если вы не хотите использовать консоль (что нормально, если вы хотите ее опубликовать), вы также можете сделать диалог. В этом примере вам не нужен C++, чтобы вы не переименовали основной файл. Сделайте новое окно (отныне обозначенное как theDialog
), которое видно при запуске и убедитесь, что ваш основной графический интерфейс НЕ показывает запуск. Добавьте текстовое поле в theDialog
и дайте ему имя (в этом примере tf
). Добавьте метку, чтобы сообщить пользователю, что положить в текстовое поле. Добавьте кнопку и привяжите ее к действию. В этом действии введите следующий код:
MainClass mc = // constructor here
NSString *str = [self.tf stringValue];
if([str equalsString:someString]){ // hypothetical string and possible error in the condition checking, I'm new to Obj-C
[mc doThisInACertainWay];
} else {
[mc doThisInADifferentWay];
}
Почему бы вам не описать то, что вы на самом деле пытаетесь достичь. Тогда, возможно, кто-то может предложить предложение. – rmaddy
Похоже, вы жаждете препроцессора C (cpp - http://gcc.gnu.org/onlinedocs/cpp/);) – tuxSlayer
Было бы здорово, если бы вы могли сопоставить '//', но я не думаю, что вы можете , Причиной идеи иметь (определенные) комментарии являются журналы, чтобы уменьшить избыточность и иметь много журналов без создания беспорядка в коде. Поэтому я думаю, что соответствующая часть комментария является ключевым битом. –