См .: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html
Параметры argc и argv содержат любые аргументы времени запуска, переданные приложению из системы.Эти аргументы анализируются инфраструктурой UIKit и в противном случае могут быть проигнорированы.
В основном UIApplicationMain()
создает объект singleton UIApplication
, который также передается вашему объекту Application Delegate.Они не определяют протокол инициализации в документах, но похоже, что argc / argv передается в UIApplication во время некоторой инициализации, а затем UIApplication анализирует их и превращает их в информацию (возможно, параметры запуска), к которой можно получить доступ через UIApplication.
В любом случае argc / argv в значительной степени зарезервированы для системного использования в приложениях iOS.Похоже, система использует их для передачи материала в UIApplication.
EDIT
В качестве эксперимента я вставил в свою функцию main () следующее:
for (int i; i < argc; i++)
NSLog(@"%s", argv[i]);
Когда я запустил его в симуляторе, он просто напечатал один «аргумент» (argv [0]), который является путем к приложению.
Я подозреваю, если вы введете это здесьзапустите приложение, которое регистрирует URL-обработчик или открывает его из-за локального уведомления или какого-либо другого системного события, после чего вы увидите URL или другие параметры, относящиеся к тому, как было открыто приложение.Однако вы не должны анализировать argc / argv [] самостоятельно!Используйте параметры запуска приложения, предоставленные для метода UIApplicationDelegate application:didFinishLaunchingWithOptions:
.