Редактировать : Перечитав свой вопрос, вы на самом деле говорите об изменениях окружающей среды. Смотрите последний абзац о том, как их читать. Если вы используете другую таблицу на той же вкладке «Аргументы, которые должны быть переданы при запуске», тогда первые три абзаца более применимы.
Переменные, переданные таким образом, будут доступны в массиве argv
в main()
. Если вы хотите получить к ним доступ позже без изменения main()
, у вас есть несколько вариантов.
Вы можете использовать [[NSProcessInfo processInfo] arguments]
, чтобы получить массив всех аргументов, передаваемых в командной строке. Это даст все пройденное, дословно.
Вы также можете использовать NSUserDefaults
. Аргументы, передаваемые в командной строке попарно, как -name value
, установят для ключа NSUserDefaults name
значение value
. Это переопределит любые переменные с тем же именем, загруженные из фактических настроек приложения. Обратите внимание, что это два аргумента, а не один аргумент с пробелом.
Любой из этих подходов должен работать для вас. Третий вариант - не использовать аргументы командной строки, а вместо этого использовать переменные среды, к которым можно получить доступ через [[NSProcessInfo processInfo] environment]
, но вопрос о том, имеет ли это больше смысла, чем аргументы, зависит от вашего конкретного варианта использования.